如何使 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