如何在 R 数据框列中提取不重复的值?
通常,重复值是在第一次出现后才被考虑,但值的第一次出现也是其余重复值的副本。因此,我们可能也希望将其排除。
借助 `duplicated` 函数和否定运算符,可以轻松地从 R 数据框列中提取不重复的值,如下面的示例所示。
示例 1
以下代码片段创建了一个示例数据框:
x<-rpois(20,10) df1<-data.frame(x) df1
创建了以下数据框
x 1 16 2 5 3 17 4 7 5 6 6 7 7 14 8 10 9 7 10 13 11 11 12 15 13 4 14 10 15 16 16 11 17 10 18 11 19 9 20 11
为了从上面创建的数据框的 x 中提取不包含第一次重复的不重复值,请将以下代码添加到上面的代码片段中:
x<-rpois(20,10) df1<-data.frame(x) df1$x[!(duplicated(df1$x)|duplicated(df1$x,fromLast=TRUE))]
输出
如果您将以上所有代码片段作为单个程序执行,则会生成以下输出:
[1] 5 17 6 14 13 15 4 9
示例 2
以下代码片段创建了一个示例数据框:
y<-sample(1:10,20,replace=TRUE) df2<-data.frame(y) df2
创建了以下数据框
y 1 8 2 10 3 1 4 5 5 5 6 2 7 1 8 2 9 6 10 7 11 10 12 5 13 7 14 4 15 2 16 1 17 6 18 5 19 10 20 7
为了从上面创建的数据框的 y 中提取不包含第一次重复的不重复值,请将以下代码添加到上面的代码片段中:
y<-sample(1:10,20,replace=TRUE) df2<-data.frame(y) df2 df2$y[!(duplicated(df2$y)|duplicated(df2$y,fromLast=TRUE))]
输出
如果您将以上所有代码片段作为单个程序执行,则会生成以下输出:
[1] 8 4
示例 3
以下代码片段创建了一个示例数据框:
z<-sample(501:510,20,replace=TRUE) df3<-data.frame(z) df3
创建了以下数据框
z 1 509 2 507 3 504 4 508 5 502 6 510 7 508 8 506 9 503 10 508 11 507 12 508 13 502 14 508 15 506 16 510 17 505 18 510 19 510 20 505
为了从上面创建的数据框的 y 中提取不包含第一次重复的不重复值,请将以下代码添加到上面的代码片段中:
z<-sample(501:510,20,replace=TRUE) df3<-data.frame(z) df3$z[!(duplicated(df3$z)|duplicated(df3$z,fromLast=TRUE))]
输出
如果您将以上所有代码片段作为单个程序执行,则会生成以下输出:
[1] 509 504 503
广告