Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何匹配同一数据帧内的值?_R_Data Science - Fatal编程技术网

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