假设我有一个包含10列的数据集。其中9个是数字,一个是分类的,其值包括“高中”和“低”。我想通过R中所有9个数字列中的分类变量来汇总(类似于excel中的sumif和countif)。
如何才能做到这一点?我对R很陌生,任何帮助都会很棒!谢谢!
如果调用了数据框,并且调用了df
类别变量group.var
,则可以执行以下操作:
library(dplyr)
df %>% group_by(group.var) %>%
summarise_each(funs(n(),sum))
内置iris
数据框示例:
iris %>% group_by(Species) %>%
summarise_each(funs(n(), sum))
Species Sepal.Length_n Sepal.Width_n Petal.Length_n Petal.Width_n Sepal.Length_sum Sepal.Width_sum Petal.Length_sum Petal.Width_sum
(fctr) (int) (int) (int) (int) (dbl) (dbl) (dbl) (dbl)
1 setosa 50 50 50 50 250.3 171.4 73.1 12.3
2 versicolor 50 50 50 50 296.8 138.5 213.0 66.3
3 virginica 50 50 50 50 329.4 148.7 277.6 101.3
有许多其他的选择(例如,data.table
包,和基础R解决方案使用tapply
,aggregate
等等)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句