我想使用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
从第一列开始,a只有1个唯一值“c”,b有2个唯一值“c”和“d”,c有2个唯一值“d”和“e”,d有1个唯一值“e” ”
我设法通过group_by()两次工作并总结(),有没有更简单的方法可以使用?
希望这是可以理解的。
谢谢
答案 0 :(得分:0)
我们可以按“一个”进行分组,并使用n_distinct
library(dplyr)
test %>%
group_by(one) %>%
summarise(n = n_distinct(two))