【问题标题】:Create df aggregating from multiple rows into single row in R在R中创建从多行聚合成单行的df
【发布时间】:2016-08-31 23:33:11
【问题描述】:

我正在使用事件数据集,需要帮助通过根据特定条件对特定变量求和来创建新的 df。

例如,假设我有一个县销售的所有汽车的数据集,其中包含经销商名称、汽车销售月份、汽车销售年份以及过去销售的汽车数量 n 年。我想创建一个新的 df,其中每一行将显示特定经销商在年度级别销售的汽车数量。

换句话说,我想从这样的事情开始:

Dealership   Month    Year    # of Cars
Bobs         April    2016    12
Toms         March    2016    8
Bobs         July     2016    20
Toms         June     2016    4
...

Dealership   Month    Year    # of Cars
Bobs         ?        2016    32
Toms         ?        2016    12
...

我不确定这是否会给我一个错误,因为月份数据(或更大数据集中的其他列)会有所不同。我只是不需要这些信息。

有人可以帮忙吗?非常感谢。

【问题讨论】:

  • 我们需要了解更多。你说“我不确定这是否会给我一个错误......”试试看,发布你的代码以及结果是什么。我们需要一个 MCVE:stackoverflow.com/help/mcve

标签: r dataframe sum aggregate aggregate-functions


【解决方案1】:

如果没有可重现的示例,我们只能做这么多,但这可能已被 dplyr 覆盖

library(dplyr)
yourdata %>% group_by(Dealership, Year) %>% summarise(Ncars = sum(`# of Cars`))

【讨论】:

  • 嗨乔纳森。谢谢你。我使用的数据集是 ucdp.uu.se/downloads/ged/ged40-csv.zip>。这是一个关于武装冲突的事件数据,它使用媒体报道来识别武装冲突中的暴力事件(精确到一天和时间)。我对数据集最感兴趣的关键变量是conflict_new_id(经销商)、deaths_civilians(汽车数量)和年份(Year)。从 1989 年到 2014 年,每个交战方通常有数千行。我很抱歉这不是一个可重复的例子,但我对此很陌生。非常感谢任何帮助。
猜你喜欢
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
  • 2020-05-31
  • 2016-07-08
  • 1970-01-01
  • 2021-05-24
相关资源
最近更新 更多