【问题标题】:Aggregate an axis in data.frame in R [duplicate]在R中的data.frame中聚合一个轴[重复]
【发布时间】:2021-02-27 17:59:41
【问题描述】:

考虑以下数据:

df <- data.frame(sex     = c("MALE","FEMALE","MALE","FEMALE"),
                 time    = c("2018","2018","2019","2019"),
                 country = c("USA","USA","USA","USA"),
                 value   = c(10,10,10,10))

如何聚合“性别”轴,得到以下数据:

    TIME    Country   Value
1   2018    USA       20
2   2019    USA       20

我如何在 R 中做到这一点(我知道这可能是一个简单的问题)?

【问题讨论】:

  • 这真的是您期望的结果吗?
  • 对不起。当然不是。现在改变了。 :-)
  • 试试aggregate like :aggregate(value ~ time + country, df, sum)
  • 这是一个分组总和,按时间和国家分组 - 请参阅常见问题解答了解几种方法。

标签: r aggregation


【解决方案1】:

使用dplyr,以下是您所要求的:

df %>% group_by(time, country)%>% summarize(sumval = sum(value))
# A tibble: 2 x 3
# Groups:   time [2]
  time  country sumval
  <chr> <chr>    <dbl>
1 2018  USA         20
2 2019  USA         20

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多