2017-08-29 61 views
-2

我想要使用dplyr獲取由另一列分組的一列中唯一值的數量。優先功能友好,這是我可以把它放在一個功能,它會很容易工作。列上的dplyr唯一出現次數

因此,例如對於下面的數據幀。

test = data.frame(one=rep(letters[1:5],each=2), two=c(rep("c", 3), rep("d", 2), rep("e", 4), "f")) 

    one two 
1 a c 
2 a c 
3 b c 
4 b d 
5 c d 
6 c e 
7 d e 
8 d e 
9 e e 
10 e f 

我想要的東西像唯一值的數量第二列給第一列。

希望的輸出:

one n 
1 a 1 
2 b 2 
3 c 2 
4 d 1 
5 e 2 

從一列中,有1個唯一的值 「C」 只,B具有2個唯一的值 「c」 和 「d」,c具有2個唯一值 「d」 和「e」,d有1個唯一值「e」。

我設法通過group_by()兩次工作,並總結(),有沒有更簡單的方法我可以使用?

希望這是可以理解的。

感謝

回答

-1

我們可以通過「一」,並獲得獨特的元素數量與組n_distinct

library(dplyr) 
test %>% 
    group_by(one) %>% 
    summarise(n = n_distinct(two))