汇总计数数据
Aggregating count data
我有一个关于 1989-2016 年国内冲突的数据集 (test_data
)。分析单位为_DyadID_
,是该时间段内卷入内战的每一对行为体的唯一标识。该数据集还包括 _SideA_
和 _SideB_
,它们是特定二元组中演员的名字。每行都是 "event" 武装暴力事件,其中有一个变量表示 A 方死亡人数 (_deaths-a_
) 和 B 方死亡人数 (_deaths-b_
)。最后,有一个变量指示每个事件的月年。
subset of data
为了我的研究,我需要知道每月 _deaths-a_
和 _deaths-b_
的数量 。基本上,我想最终得到一个数据集,该数据集显示每个 _DyadID_
的每月死亡人数数据。我已经使用以下代码设法显示所有冲突中每月 A/B 的死亡总数:
monthly_deaths_a <- aggregate(deaths_a ~ year_month, test_data, sum)
monthly_deaths_b <- aggregate(deaths_b ~ year_month, test_data, sum)
但不知道如何为每个 dyad 分解此数据。
如果有人能提出这样做的方法,我将不胜感激!干杯
与 data.table
类似:
require(data.table)
summary <- test_data[, .(sum(deaths_a), sum(deaths_b)), by= .(year_month)]
注意:不确定您是需要按月还是按月和年...这些是不同的,所以我将两者分开...
#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)
我有一个关于 1989-2016 年国内冲突的数据集 (test_data
)。分析单位为_DyadID_
,是该时间段内卷入内战的每一对行为体的唯一标识。该数据集还包括 _SideA_
和 _SideB_
,它们是特定二元组中演员的名字。每行都是 "event" 武装暴力事件,其中有一个变量表示 A 方死亡人数 (_deaths-a_
) 和 B 方死亡人数 (_deaths-b_
)。最后,有一个变量指示每个事件的月年。
subset of data
为了我的研究,我需要知道每月 _deaths-a_
和 _deaths-b_
的数量 。基本上,我想最终得到一个数据集,该数据集显示每个 _DyadID_
的每月死亡人数数据。我已经使用以下代码设法显示所有冲突中每月 A/B 的死亡总数:
monthly_deaths_a <- aggregate(deaths_a ~ year_month, test_data, sum)
monthly_deaths_b <- aggregate(deaths_b ~ year_month, test_data, sum)
但不知道如何为每个 dyad 分解此数据。
如果有人能提出这样做的方法,我将不胜感激!干杯
与 data.table
类似:
require(data.table)
summary <- test_data[, .(sum(deaths_a), sum(deaths_b)), by= .(year_month)]
注意:不确定您是需要按月还是按月和年...这些是不同的,所以我将两者分开...
#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)