首页 > 解决方案 > Adding column to ather dataframe in R

问题描述

It must be somewhere already solved, but I cannot find it. So, please:

df1 :

X Y ID
1 2 22
4 6 23
. . .

df2 :

B A ID
3 4 22
4 3 23
. . .

I want new df:

X Y ID A
1 2 22 4
4 6 23 3
. . .

df1 and df2 has a different length. The length of df shold be the same as length of df1.

Could somebody help me or send me a link? merge, left_join do not work..

标签: r

解决方案


您可以使用matchto添加列并保持.Adf2df1df1

df1$A  <- df2$A[match(df1$ID, df2$ID)]
df1
#  X Y ID A
#1 1 2 22 4
#2 4 6 23 3

或使用merge

merge(df1, df2[c("ID","A")], all.x=TRUE)
#  ID X Y A
#1 22 1 2 4
#2 23 4 6 3

万一您有不止一排IDdf2使用中aggregate

merge(df1, aggregate(A ~ ID, df2, head, n=1), all.x=TRUE)

推荐阅读