【发布时间】:2015-02-23 22:12:26
【问题描述】:
使用 dplyr 将函数 table() 应用于 data.frame 的每一列
我经常使用 plyr 将表函数应用于数据框的每一列,如下所示:
library(plyr)
ldply( mtcars, function(x) data.frame( table(x), prop.table( table(x) ) ) )
是否也可以在 dplyr 中执行此操作?
我的尝试失败了:
mtcars %>% do( table %>% data.frame() )
melt( mtcars ) %>% do( table %>% data.frame() )
【问题讨论】:
-
您可以使用
gather从library(tidyr)将其转换为long表单,然后执行gather(mtcars, Var, Val) %>% group_by(Var) %>% dplyr::mutate(n=n()) %>% group_by(Var,Val) %>% dplyr::mutate(n1=n(), Percent=n1/n)%>% unique() -
你能用这种方法发布完整的答案吗