代码之家  ›  专栏  ›  技术社区  ›  Arwen

R中数据帧中特定行的求和函数是什么?

  •  -1
  • Arwen  · 技术社区  · 2 年前

    我想根据自己的选择对特定行求和。我的数据如下:

    df_new <- data.frame(country = c('US', 'US','US', 'UK','UK','UK'),
                     team = c('A', 'B','C','A','F', 'E'),
                     x1990 = c(11, 8,2,16,1,21),
                     x2005 = c(6, 4,2,10,1, 14))
    

    我想这样准备:

    df_sum <- data.frame(country = c('US','US', 'UK','UK'),
                     team = c('A', 'B','A','F'),
                     x1990 = c(11, 10,16,22),
                     x2005 = c(6, 6,10, 15))
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Kra.P    2 年前

    你可以试试

    df_new%>%
      mutate(team = case_when(
        team %in% c("B", "C") ~ "B",
        team %in% c("E", "F") ~ "F",
        T ~ team
      )) %>%
      group_by(country, team) %>%
      summarise(across(is.numeric, ~sum(.x))) %>%
      arrange(desc(country))
    
      country team  x1990 x2005
      <chr>   <chr> <dbl> <dbl>
    1 US      A        11     6
    2 US      B        10     6
    3 UK      A        16    10
    4 UK      F        22    15
    

    您可能需要指定 一些 在…内 case_when 部分