如何在 R 数据框的每一行中查找唯一值的个数?


要查找 R 数据框中每一行中唯一值的个数,我们可以使用 apply 函数与 length 和 unique 函数。例如,如果我们有一个包含多列的数据框 df,那么可以通过使用命令 apply(df,1,function(x) length(unique(x))) 来查找 df 中每一行的唯一值个数。

示例 1

考虑以下数据框 −

在线演示

> x1<-rpois(20,2)
> x2<-rpois(20,2)
> x3<-rpois(20,2)
> x4<-rpois(20,2)
> df1<-data.frame(x1,x2,x3,x4)
> df1

输出

   x1 x2 x3 x4 1   3  1  1  2 2   3  2  0  2 3   3  2  0  1 4   3  0  3  1 5   3  1  1  2 6   4  4  2  4 7   1  0  2  1 8   0  4  1  2 9   1  4  4  4 10  2  1  2  4 11  1  4  1  2 12  2  5  0  3 13  1  0  3  0 14  2  1  2  2 15  1  0  6  3 16  1  0  5  2 17  3  1  0  3 18  1  3  7  4 19  2  0  1  3 20  1  4  3  0

查找 df1 中每一行中唯一值的个数 −

> apply(df1,1,function(x) length(unique(x)))
[1] 3 3 4 3 3 2 3 4 2 3 3 4 3 2 4 4 3 4 4 4

示例 2

在线演示

> y1<-rpois(20,1)
> y2<-rpois(20,1)
> y3<-rpois(20,1)
> y4<-rpois(20,1)
> y5<-rpois(20,1)
> df2<-data.frame(y1,y2,y3,y4,y5)
> df2

输出

   y1 y2 y3 y4 y5 1   2  0  0  0  1 2   0  1  0  1  3 3   1  1  1  1  1 4   4  1  1  1  0 5   3  0  0  0  0 6   0  0  0  1  1 7   0  0  3  0  0 8   1  2  3  1  1 9   1  1  3  0  1 10  2  1  1  1  1 11  0  2  0  2  1 12  2  0  1  0  1 13  0  2  0  0  1 14  0  0  1  3  0 15  1  1  2  1  0 16  1  2  2  2  1 17  0  0  0  1  1 18  0  2  0  0  1 19  1  1  0  1  2 20  2  2  0  2  2

查找 df2 中每一行中唯一值的个数 −

> apply(df2,1,function(x) length(unique(x)))

输出

[1] 3 3 1 3 2 2 2 3 3 2 3 3 3 3 3 2 2 3 3 2

更新于:2021 年 3 月 6 日

1 次以上浏览

开始你的 职业生涯

通过完成课程获得认证

开始学习
广告