2017-08-29 63 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))