【发布时间】:2017-12-22 13:19:24
【问题描述】:
我想在分组后使用 dplyr 中的 summarise 函数来提取数据框中每个变量的级别数。 这是数据框的副本:
x=c("A","A","A","A","A","B","B","B","B","C","C","C","D","D","D","E","E")
y=c("a","b","c","a","b","a","b","c","d","c","b","e","b","d","f","a","b")
z=c("x","x","x","y","y","p","p","p","p","t","v","v","m","m","n","o","o")
d=data.frame(x,y,z)
这是我正在使用的代码
library(dplyr)
d %>%
group_by(x) %>%
summarise(total=n(),
Y=nlevels(y),
Z=nlevels(z))
但是,这会生成 Y 和 Z 列,汇总数据框“d”中的级别,而不是分组数据中的级别。
我想生成的数据框如下所示:
x=c("A","B","C","D","E")
total=c(5,4,3,3,2)
Y=c(3,4,3,3,2)
Z=c(2,1,2,2,1)
d2=data.frame(x,total,Y,Z)
d2
谢谢!
【问题讨论】: