【问题标题】:Summing and calculating mean for different columns in dplyr [duplicate]dplyr中不同列的求和和计算平均值[重复]
【发布时间】:2019-08-13 20:13:49
【问题描述】:

我正在使用 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 

您能否建议我获得所需结果的方法?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    这是我在 cmets 中的链接副本中未涵盖的一种方式。这是一种可怕的方式,但如果数据很小和/或您的摘要函数很快,则可能没问题。基本上,我将所有函数应用于所有所需的变量,然后选择所需的组合。

    就个人而言,我认为这不值得,只是把它放在这里-

    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
    

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 2020-04-06
      • 2020-03-03
      • 1970-01-01
      • 2016-01-10
      • 2021-06-03
      • 2015-11-02
      • 2020-12-30
      • 2020-10-02
      相关资源
      最近更新 更多