首页 文章资讯内容详情

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

2026-06-02 2 花语

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