如何基于连接条件从R中的两个不同数据帧添加两列

如何基于连接条件从R中的两个不同数据帧添加两列,r,dataframe,inner-join,R,Dataframe,Inner Join,我需要根据连接条件将来自另一个数据帧的列中的值添加到主数据帧中的列中 示例代码: > df <- data.frame(branch = c('a','b','c','d'), + m1 = c(10,15,10,20), + m3 = rnorm(4,15,2)) > df branch m1 m3 1 a 10 12.35114 2 b 15 14.87139 3

我需要根据连接条件将来自另一个数据帧的列中的值添加到主数据帧中的列中

示例代码:

> df <- data.frame(branch = c('a','b','c','d'),
+                  m1 = c(10,15,10,20),
+                  m3 = rnorm(4,15,2))
> df
  branch m1       m3
1      a 10 12.35114
2      b 15 14.87139
3      c 10 12.23589
4      d 20 20.26247
> 
> df2 <- data.frame(outlet = c('c','a','d','b'),
+                   ml = c(3,6,5,3))
> df2
  outlet ml
1      c  3
2      a  6
3      d  5
4      b  3
> 
我尝试了内部连接,但需要多个步骤:

> df3 <- inner_join(df,df2,by = c('branch' = 'outlet'))
> df3
  branch m1       m3 ml
1      a 10 12.35114  6
2      b 15 14.87139  3
3      c 10 12.23589  3
4      d 20 20.26247  5
> df3$m1 <- df3$m1 + df3$ml
> df3
  branch m1       m3 ml
1      a 16 12.35114  6
2      b 18 14.87139  3
3      c 13 12.23589  3
4      d 25 20.26247  5
> df3[4] <- NULL
> df3
  branch m1       m3
1      a 16 12.35114
2      b 18 14.87139
3      c 13 12.23589
4      d 25 20.26247

> df <- df3
>df3 df3
分支m1 m3 ml
1 a 10 12.35114 6
2 b 15 14.87139 3
3 c 10 12.23589 3
4 d 20 20.26247 5
>df3$m1 df3
分支m1 m3 ml
1 a 16 12.35114 6
2 b 18 14.87139 3
3 c 13 12.23589 3
4 d 25 20.26247 5
>df3[4]df3
分行m1 m3
1A 16 12.35114
2B1814.87139
3 c 13 12.23589
4 d 25 20.26247

>df您可以使用
匹配
,即

df$m1 + df2$ml[match(df$branch, df2$outlet)]
#[1] 16 18 13 25
df$m1 + df2$ml[match(df$branch, df2$outlet)]
#[1] 16 18 13 25