如何在 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 次以上瀏覽

開始你的 職業生涯

透過完成課程獲得認證

開始學習
廣告