R 如何匹配同一数据帧内的值?
我的数据框如下所示:R 如何匹配同一数据帧内的值?,r,data-science,R,Data Science,我的数据框如下所示: destination origen iso3_exp Importer flow iso3_imp gdp_o gdp_d distw año 1 ABW AUT 40 533 188.782 ABW 240457629696 1320670336 8632.9708 1995 2 AUT ABW 58 533 912.362
destination origen iso3_exp Importer flow iso3_imp gdp_o gdp_d distw año
1 ABW AUT 40 533 188.782 ABW 240457629696 1320670336 8632.9708 1995
2 AUT ABW 58 533 912.362 ABW 289122615296 1320670336 7843.2555 1995
3 CHL ARG 76 533 4535.649 ABW 768951320576 1320670336 4431.5712 1995
4 ARG CHL 156 533 496.458 ABW 728007573504 1320670336 14590.9239 1995
5 AUT BEL 170 533 116442.845 ABW 92507275264 1320670336 929.5887 1995
我需要创建一个名为totalflow的变量,它是与Origen Destination匹配的行之间变量“flow”的总和,例如:第3行的Destination to CHL和Origen from ARG,第4行的Destination to ARG和Origen from CHL我需要求和该行的流量(3)使用第4行的流,并对所有其他行执行相同的操作
destination origen iso3_exp Importer flow iso3_imp gdp_o gdp_d distw año totalflow
1 ABW AUT 40 533 188.782 ABW 240457629696 1320670336 8632.9708 1995 1100
2 AUT ABW 58 533 912.362 ABW 289122615296 1320670336 7843.2555 1995 1100
3 CHL ARG 76 533 4535.649 ABW 768951320576 1320670336 4431.5712 1995 5031
4 ARG CHL 156 533 496.458 ABW 728007573504 1320670336 14590.9239 1995 5031
5 AUT BEL 170 533 116442.845 ABW 92507275264 1320670336 929.5887 1995 116442
事先谢谢。创建一个组列,其中包含已排序的起始值和目标值
df$group <- with(df,paste0(pmax(destination, origen),pmin(destination, origen)))
这将返回:
df
# destination origen iso3_exp Importer flow iso3_imp gdp_o
#1 ABW AUT 40 533 188.782 ABW 240457629696
#2 AUT ABW 58 533 912.362 ABW 289122615296
#3 CHL ARG 76 533 4535.649 ABW 768951320576
#4 ARG CHL 156 533 496.458 ABW 728007573504
#5 AUT BEL 170 533 116442.845 ABW 92507275264
# gdp_d distw año group totalflow
#1 1320670336 8632.9708 1995 AUTABW 1101.144
#2 1320670336 7843.2555 1995 AUTABW 1101.144
#3 1320670336 4431.5712 1995 CHLARG 5032.107
#4 1320670336 14590.9239 1995 CHLARG 5032.107
#5 1320670336 929.5887 1995 BELAUT 116442.845
如果df$group不需要group
列,则删除该列
df
# destination origen iso3_exp Importer flow iso3_imp gdp_o
#1 ABW AUT 40 533 188.782 ABW 240457629696
#2 AUT ABW 58 533 912.362 ABW 289122615296
#3 CHL ARG 76 533 4535.649 ABW 768951320576
#4 ARG CHL 156 533 496.458 ABW 728007573504
#5 AUT BEL 170 533 116442.845 ABW 92507275264
# gdp_d distw año group totalflow
#1 1320670336 8632.9708 1995 AUTABW 1101.144
#2 1320670336 7843.2555 1995 AUTABW 1101.144
#3 1320670336 4431.5712 1995 CHLARG 5032.107
#4 1320670336 14590.9239 1995 CHLARG 5032.107
#5 1320670336 929.5887 1995 BELAUT 116442.845