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