我有一个相对较大的数据集(〜9000行/观察),旨在估算贸易流量。为此,我有一个数据集,该数据集的第一列包含一个国家/地区对和年份的唯一标识符,分别指示了进口商和出口商以及年份,即
> head(data)
cp id_IM id_EX iso2_a iso2_t Freq value date_c
1 AD_2015_ES_2015 AD_2015 ES_2015 AD ES 2 20775 2015
2 AD_2015_ES_2015 AD_2015 ES_2015 AE AM 2 20000 2015
3 AE_2008_AT_2008 AE_2008 AT_2008 AE AT 1 25 2008
4 AE_2008_EG_2008 AE_2008 EG_2008 AE EG 1 393 2008
5 AE_2008_GB_2008 AE_2008 GB_2008 AE GB 2 8896 2008
6 AE_2008_GB_2008 AE_2008 GB_2008 AE GB 2 59856 2008 2008
然后,我对国家/地区对进行了合并,这样我每年只有一个国家/地区对并进行汇总
agg <- zephyr %>% ddply(.
(cp, id_a, id_t, iso2_a, iso2_t, date_a, date_c, Freq),
function(x) c(value=sum(x$value)))
尽管我也不确定R是否确实完成了我想要的工作。因此,我的问题是:
(1)如何汇总值列而不是所有其他列的总和并删除重复项,这样我每年就有一个国家对,且所有重复项的总和即为
cp id_IM id_EX iso2_a iso2_t Freq value date_c
1 AD_2015_ES_2015 AD_2015 ES_2015 AD ES 2 20775 2015
2 AD_2015_ES_2015 AD_2015 ES_2015 AD ES 2 20000 2015
成为
cp id_IM id_EX iso2_a iso2_t Freq value date_c
1 AD_2015_ES_2015 AD_2015 ES_2015 AD ES 2 40775 2015
(2)因为我想要国家a和b之间的全部贸易流量,所以我还需要将a到b的流量与b到a的流量相加。换一种说法, 我怎么总结
cp id_IM id_EX iso2_a iso2_t Freq value date_c
1 AD_2015_ES_2015 AD_2015 ES_2015 AD ES 1 20775 2015
2 ES_2015_AD_2015 ES_2015 AD_2015 ES AD 1 20000 2015
以便保留这两个观察值,但增加其值:
cp id_IM id_EX iso2_a iso2_t Freq value date_c
1 AD_2015_ES_2015 AD_2015 ES_2015 AD ES 1 40775 2015
2 ES_2015_AD_2015 ES_2015 AD_2015 ES AD 1 40775 2015
非常感谢您的帮助,因为作为一个整体的初学者,我确实为此感到困惑。