df%>%
group_by(variable1)%>%
summarise(length=length(levels(df$variable2))
group_by不起作用,我对variable1的所有级别都有相同的结果。
答案 0 :(得分:5)
我们需要删除df$
。 levels(df$variable2)
获取完整数据集中的levels
。对于factor
变量,除非我们使用droplevels
降低级别,否则未使用的级别仍然存在。
df %>%
group_by(variable1)%>%
summarise(length=length(levels(droplevels(variable2))))
此外,我们可以使用levels
n_distinct
路线
df %>%
group_by(variable1) %>%
summarise(length=n_distinct(variable2))
set.seed(24)
df <- data.frame(variable1=sample(letters[1:3],
10,replace=TRUE), variable2= sample(letters[1:5],10, replace=TRUE))