R 聚合计数数据
我有一个关于1989-2016年间民事冲突的数据集(R 聚合计数数据,r,sorting,aggregate,aggregate-functions,panel-data,R,Sorting,Aggregate,Aggregate Functions,Panel Data,我有一个关于1989-2016年间民事冲突的数据集(test_data)。分析单位是\u DyadID\u,这是这段时间内参与国内冲突的每对行为者的唯一标识符。数据集还包括\u SideA\u和\u SideB\u,它们是特定二元体中参与者的名称。每一行都是武装暴力的“事件”,其中a方死亡人数(\u死亡-a\u)和B方死亡人数(\u死亡-B\u)是一个变量。最后,有一个变量表示每个事件的月份和年份 为了我的研究,我需要知道每月的死亡人数和死亡人数。基本上,我想以一个数据集结束,该数据集向我显示
test_data
)。分析单位是\u DyadID\u
,这是这段时间内参与国内冲突的每对行为者的唯一标识符。数据集还包括\u SideA\u
和\u SideB\u
,它们是特定二元体中参与者的名称。每一行都是武装暴力的“事件”,其中a方死亡人数(\u死亡-a\u
)和B方死亡人数(\u死亡-B\u
)是一个变量。最后,有一个变量表示每个事件的月份和年份
为了我的研究,我需要知道每月的死亡人数和死亡人数。基本上,我想以一个数据集结束,该数据集向我显示每个\u DyadID\u
的每月死亡计数数据。我已使用以下代码显示了所有冲突中每月A/B死亡的总数:
monthly_deaths_a <- aggregate(deaths_a ~ year_month, test_data, sum)
monthly_deaths_b <- aggregate(deaths_b ~ year_month, test_data, sum)
每月死亡人数\u a和数据。表
,如下所示:
require(data.table)
summary <- test_data[, .(sum(deaths_a), sum(deaths_b)), by= .(year_month)]
require(data.table)
小结注意:不确定您是需要按月还是按月按年……这些是不同的,所以我将两者分开
#Start with some sample data
other_var <- c(1,2,2,1,2,2)
DyadID <- c(689, 689, 689, 889, 889, 889)
year_month <- c('2007-04', '2007-04', '2008-04', '2007-06', '2007-06', '2007-07')
deaths_a <- c(0, 5, 3, 2, 0, 0)
deaths_b <- c(10, 0, 3, 4, 3, 3)
df <- data.frame(other_var, DyadID, year_month, deaths_a, deaths_b)
#Use the dplyr and tidyr packages...
library(dplyr)
library(tidyr)
#Split your variable into year and month (which is what I assume you mean...)
df <- df %>%
separate(year_month, c('year', 'month'), "-")
#Aggregate
df2 <- aggregate(cbind(deaths_a, deaths_b) ~ DyadID + year + month, df, sum)
#从一些示例数据开始
其他的都很好!很好,非常感谢。再次你好!我曾试图重现相同的代码,但用于更复杂的数据版本,总共有42个变量。dfaggregate(.~brd\u ged.DyadID+brd\u ged.year\u month,df,sum)
更改为aggregate(.~brd\u ged$DyadID+brd\u ged$year\u month,df,sum)
这将聚合所有其他列……因此,如果您只想聚合这两列,在聚合df之前,您应该创建一个子集,这样基本上我就可以坚持使用您提供的原始解决方案,然后将生成的数据帧与完整、复杂的数据集合并,以获得我想要的结果?