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