如何在R数据帧的每一行中找到唯一值的数量?

为了找到R数据帧的每一行中唯一值的数量,我们可以使用带有长度和唯一函数的apply函数。例如,如果我们有一个称为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

以上是 如何在R数据帧的每一行中找到唯一值的数量? 的全部内容, 来源链接: utcz.com/z/343116.html

回到顶部