Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 聚合计数数据_R_Sorting_Aggregate_Aggregate Functions_Panel Data - Fatal编程技术网

R 聚合计数数据

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)是一个变量。最后,有一个变量表示每个事件的月份和年份 为了我的研究,我需要知道每月的死亡人数和死亡人数。基本上,我想以一个数据集结束,该数据集向我显示

我有一个关于1989-2016年间民事冲突的数据集(
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个变量。df
aggregate(.~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之前,您应该创建一个子集,这样基本上我就可以坚持使用您提供的原始解决方案,然后将生成的数据帧与完整、复杂的数据集合并,以获得我想要的结果?