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


为了使 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

更新于: 2021年11月3日

390 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.