【问题标题】:Is there an automated pipeline for summing columns?是否有用于汇总列的自动管道?
【发布时间】:2022-11-25 05:01:51
【问题描述】:

我需要对多行中的数据求和以创建跨多列的单行。我处理了一个包含 52 个样本(列)的数据集并手动将它们全部输入,但我很快就要处理一个更大的数据集,其中手动输入是不合理的。这是我所做的一个小例子。

group_by(MTTAXA$MTmatch) %>%
summarise(comb_S026401.R1 = sum(S026401.R1), comb_S026404.R1 = sum(S026404.R1), 
comb_S026406.R1 = sum(S026406.R1),comb_S026409.R1 = sum(S026409.R1),
comb_S026412.R1 = sum(S026412.R1), comb_S026413.R1 = sum(S026413.R1), 

我相信有一个简单而优雅的解决方案。

【问题讨论】:

    标签: dplyr group-by summarize


    【解决方案1】:

    这是一个可能对您有帮助的示例

    library(dplyr)
    
    df <-
      data.frame(
        var_grp_1 = sample(LETTERS[1:3],100,replace = TRUE),
        var_num_1 = rnorm(100),
        var_num_2 = rnorm(100),
        var_num_3 = rnorm(100),
        var_num_4 = rnorm(100),
        var_num_5 = rnorm(100),
        var_num_5 = rnorm(100)
      )
    
    df %>% 
      group_by(var_grp_1) %>% 
      summarise(across(.cols = starts_with("var_num"),.fns = sum,.names = "comb_{.col}"))
    
    # A tibble: 3 x 7
      var_grp_1 comb_var_num_1 comb_var_num_2 comb_var_num_3 comb_var_num_4 comb_var_num_5 comb_var_num_5.1
      <chr>              <dbl>          <dbl>          <dbl>          <dbl>          <dbl>            <dbl>
    1 A                  -3.96         -0.345           5.13           2.43         -2.78             0.120
    2 B                 -12.6          -3.99           -2.26          -1.03          0.313           -1.24 
    3 C                  -2.62          3.92           -1.44           1.27         -0.342            2.59 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 2021-05-04
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 2016-09-25
      相关资源
      最近更新 更多