如何基于连接条件从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