【问题标题】:Merge multiple columns by column value, summing remaining columns in R [duplicate]按列值合并多列,对R中的剩余列求和[重复]
【发布时间】:2021-10-19 05:19:51
【问题描述】:

希望使用 R 做一些事情(我假设是非常基本的)。我有一个很长的数据集,看起来像这样:

 Country  A  B  C  D
 Austria  1  1  4  1
 Austria  5  2  6  1
 Austria  2  8  1  2
 Belgium  6  9  9  3
 Belgium  8  1  9  2

我希望能够合并具有相同国家/地区的所有行,并对各个列中的所有数字求和,所以它看起来像这样:

 Country  A  B  C  D
 Austria  8  11 11 4
 Belgium  14 10 18 5

感谢您的帮助!

【问题讨论】:

    标签: r dataframe data-manipulation


    【解决方案1】:

    基础R:

     aggregate(. ~ Country, data = df, sum)
      Country  A  B  C D
    1 Austria  8 11 11 4
    2 Belgium 14 10 18 5
    

    带data.table:

    library(data.table)
    data.table(df)[, lapply(.SD, sum), by=Country ]
    
       Country  A  B  C D
    1: Austria  8 11 11 4
    2: Belgium 14 10 18 5
    

    以 dplyr 方式:

    library(dplyr)
         df %>%
         group_by(Country) %>%
         summarise_all(sum)
    
    # A tibble: 2 x 5
      Country     A     B     C     D
      <chr>   <int> <int> <int> <int>
    1 Austria     8    11    11     4
    2 Belgium    14    10    18     5
    

    有数据:

         df <-  read.table(text = ' Country  A  B  C  D
        Austria  1  1  4  1
        Austria  5  2  6  1
        Austria  2  8  1  2
        Belgium  6  9  9  3
        Belgium  8  1  9  2', header = T)
    

    【讨论】:

    • 这成功了!也非常感谢您的详细程度
    【解决方案2】:
    dat %>% 
        group_by(Country) %>% 
        summarise(across(A:D, sum))
    
    # A tibble: 2 × 5
      Country     A     B     C     D
      <chr>   <int> <int> <int> <int>
    1 Austria     8    11    11     4
    2 Belgium    14    10    18     5
    

    【讨论】:

      【解决方案3】:

      您可以使用rowsum 来汇总每个组的行数。

      rowsum(df[-1], df[,1])
      #         A  B  C D
      #Austria  8 11 11 4
      #Belgium 14 10 18 5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        • 2021-02-28
        • 1970-01-01
        相关资源
        最近更新 更多