我有这个数据集,我需要按组,性别,组和性别来计算这些变量的总和,范围,平均值,方差等。我试图找到一种解决方案,但仅找到factor()
函数来执行此操作,但是找不到该函数的任何有用用法,就像我想使用的那样。您可以帮助我如何使用此功能吗?或者您可以告诉我是否还有其他方法可以通过因素来计算此变量。已经谢谢你了。
IdNo Group Gender Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8
1 Group3 Male 3.77 22.11 67.21 79.58 78.27 76.47 89.59 15.51
2 Group2 Female 3.76 19.88 61.1 71.23 70.83 76.13 88.71 15.52
3 Group1 Female 3.96 22.36 59.89 71.44 71.52 73.62 88.33 15.61
4 Group2 Female 3.92 19.04 61.00 70.36 72.31 72.09 87.51 15.57
5 Group2 Female 4.13 22.97 60.89 69.12 70.59 69.06 88.76 16.58
6 Group1 Female 3.64 18.45 57.87 67.29 66.96 67.41 86.54 14.33
7 Group3 Female 4.36 22.45 62.42 74.30 73.10 73.91 89.07 17.26
8 Group1 Female 3.99 18.39 60.64 70.71 71.56 71.26 88.85 14.83
9 Group1 Male 3.93 19.59 57.74 65.62 65.89 68.42 88.55 16.57
10 Group3 Male 3.89 21.49 63.99 73.61 74.28 73.19 86.95 14.64
我们可以使用创建列列表来将此功能应用于vars
。
vars <- list('Group', 'Gender', c('Group', 'Gender'))
使用map
/ lapply
遍历它们,使用group_by_at
接受group_by
中的字符串输入,并使用summarise_at
将多个功能应用于多个列。
library(dplyr)
result <- purrr::map(vars, ~ df %>% group_by_at(.x) %>%
summarise_at(vars(starts_with('Var')), list(mean, sd, var)))