【发布时间】:2018-12-07 17:36:41
【问题描述】:
我遇到了一些超出我技能的东西。我正在处理由国家间数据组成的 IMF 贸易数据。 IMF 数据集由“无序重复”记录组成,每个国家单独报告贸易数据。但是,由于时间、记录系统、制度类型等的不同,对应的数值存在差异。我试图以两种方式处理这些数据:
- 将平均值分配给重复的二元组。
- 根据单独的经济指标或发展指数(我更信任谁?)有条件地分配二元值。
有几个关于识别无序重复here、here、here 和here 的讨论,但经过几天的搜索,我还没有看到我想要做什么。
这是原始数据的示例。实际上有更多的变量和几十万对:
reporter<-c('USA','GER','AFG','FRA','CHN')
partner<-c('AFG','CHN','USA','CAN','GER')
year<-c(2010,2010,2010,2009,2010)
import<-c(-1000,-2000,-2400,-1200,-2000)
export<-c(2500,2200,1200,2900,2100)
rep_econ1<-c(28,32,12,25,19)
imf<-data.table(reporter,partner,year,import,export,rep_econ1)
imf
reporter partner year import export rep_econ1
1: USA AFG 2010 -1000 2500 28
2: GER CHN 2010 -2000 2200 32
3: AFG USA 2010 -2400 1200 12
4: FRA CAN 2009 -1200 2900 25
5: CHN GER 2010 -2000 2100 19
额外的皱纹是import和export在二元之间是互逆的,所以需要用绝对值来匹配和表示。
对于目标 1,生成的 data.table 是:
平均值
reporter partner year import export rep_econ1
USA AFG 2010 -1100 2450 28
GER CHN 2010 -2050 2100 32
AFG USA 2010 -2450 1100 12
FRA CAN 2009 -1200 2900 25
CHN GER 2010 -2100 2050 19
对于目标 2:
有条件地分配更高的经济指标 (rep_econ1)
reporter partner year import export rep_econ1
USA AFG 2010 -1000 2500 28
GER CHN 2010 -2000 2200 32
AFG USA 2010 -2500 1000 12
FRA CAN 2009 -1200 2900 25
CHN GER 2010 -2200 2000 19
可能不是所有的 dyads 都会出现两次,所以我收录了一张独奏唱片。我更喜欢data.table,但我会选择任何能让我走上正确道路的东西。
感谢您的宝贵时间。
【问题讨论】:
标签: r dplyr data.table