在许多变量上使用汇总函数

时间:2019-04-03 14:15:06

标签: r dplyr

我有一个带有列的数据框-ID,Var_1,Var_2 ...,其中ID-标识符,Var_i-变量。

所以,目的是应用一些函数,例如最小值,最大值,每列的平均值,按ID分组以及获取类似的数据-

ID-min_Var_1-mean_Var_1-max_Var_1-min_Var_2-mean_Var_2 ....

问题是我有100多个变量。如何有效地做到这一点?

db <- data %>%
    group_by(N_det) %>%
    summarise(min_Var_1 = min(Var_1), mean_Var_1 = mean(Var_1), 
    max_Var_1 = max(Var_1), min_Var_2 = min(Var_2), 
    mean_Var_2 = mean(Var_2)...)

1 个答案:

答案 0 :(得分:1)

我们可以使用summarise_at

library(dplyr)
data %>%
   group_by(N_det) %>%
   summarise_at(vars(starts_with("Vars")), list(min = ~ min(., na.rm = TRUE), 
               max = ~ max(., na.rm = TRUE),
               mean = ~ mean(., na.rm = TRUE)))

带有iris

的可复制示例
 iris %>% 
   group_by(Species) %>% 
   summarise_at(vars(ends_with("Width")),
      list(min = ~ min(., na.rm = TRUE), max = ~ max(., na.rm = TRUE)))