如何使 R 数据框中的所有值唯一?

r programmingserver side programmingprogramming更新于 2025/4/9 18:22:17

要使 R 数据框中的所有值唯一,我们可以使用 make.unique 函数,但首先我们需要取消列出数据框中的值,然后使用 as.character 读取它们。例如,如果我们有一个名为 df 的数据框,其中包含重复值和非重复值,那么我们可以使用以下命令 − 使所有值唯一。

df[]<-make.unique(as.character(unlist(df)))

示例 1

以下代码片段创建了一个示例数据框 −

x<-rpois(20,1)
df1<-data.frame(x)
df1

创建以下数据框

   x
1  0
2  0
3  1
4  1
5  1
6  0
7  2
8  0
9  1
10 0
11 0
12 0
13 1
14 2
15 1
16 1
17 0
18 0
19 1
20 1

为了使 df1 中的所有值在上述创建的数据框中唯一,请将以下代码添加到上述代码片段中 −

x<-rpois(20,1)
df1<-data.frame(x)
df1[]<-make.unique(as.character(unlist(df1)))
df1

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

     x
1    0
2  0.1
3    1
4  1.1
5  1.2
6  0.2
7    2
8  0.3
9  1.3
10 0.4
11 0.5
12 0.6
13 1.4
14 2.1
15 1.5
16 1.6
17 0.7
18 0.8
19 1.7
20 1.8

示例 2

以下代码片段创建了一个示例数据框 −

y<-sample(letters[1:5],20,replace=TRUE)
df2<-data.frame(y)
df2

创建以下数据框

   y
1  c
2  a
3  b
4  c
5  c
6  d
7  a
8  a
9  e
10 a
11 c
12 c
13 c
14 a
15 c
16 b
17 c
18 c
19 d
20 b

为了使 df2 中的所有值在上述创建的数据框中唯一,请将以下代码添加到上述代码片段中 −

y<-sample(letters[1:5],20,replace=TRUE)
df2<-data.frame(y)
df2[]<-make.unique(as.character(unlist(df2)))
df2

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

     y
1    c
2    a
3    b
4  c.1
5  c.2
6    d
7  a.1
8  a.2
9    e
10 a.3
11 c.3
12 e.1
13 c.4
14 a.4
15 c.5
16 b.1
17 c.6
18 c.7
19 d.1
20 b.2

相关文章