合并行并在R中求和

时间:2019-05-14 17:00:06

标签: r

我有一个相对较大的数据集(〜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

非常感谢您的帮助,因为作为一个整体的初学者,我确实为此感到困惑。

0 个答案:

没有答案