dplyr中不同列的求和和计算平均值

时间:2019-08-13 20:13:49

标签: r dplyr

我正在使用dplyr库处理数据集。我试图通过使用“ summarise_at”函数将一些变量分组并在一个命令行中计算均值和总和来进行努力。

使用以下代码,我得到了一个错误。

complete.data %>%
  select(A, B, C, D, E, F) %>%
  group_by(A) %>%
  summarise_at(vars(B, C, D), mean) %>%
  summarise_at(vars(E, F, G), sum)

此外,我认为我将得到一个具有以下变量顺序的表作为输出:

group_by (A), mean variables (B,C,D), sum variables (E,F,G) 

每列下都有相关数据。

我想按以下顺序获取变量:

A(group_by)     D        B       E      C         F 

您能建议我一种获得预期结果的方法吗?

1 个答案:

答案 0 :(得分:0)

这是我的链接重复注释中未涉及的方法。这是一种可怕的方法,但是如果数据较小和/或您的汇总功能很快,则可以。基本上,我将所有函数应用于所有所需的变量,然后选择所需的组合。

我个人认为这不值得,只是将其发布在这里-

mtcars %>% 
  group_by(cyl) %>% 
  summarize_at(c(3,4,5,6), list(mean = ~mean(.), sum = ~sum(.), median = ~median(.))) %>% 
  select(cyl, hp_mean, drat_sum, wt_median, qsec_median) 
  # select can be automated based on patterns

# A tibble: 3 x 5
    cyl hp_mean drat_sum wt_median qsec_median
  <dbl>   <dbl>    <dbl>     <dbl>       <dbl>
1     4    82.6     44.8      2.2         18.9
2     6   122.      25.1      3.22        18.3
3     8   209.      45.2      3.76        17.2