[英]Use a dataframe as a key to fill another according to one column values in R Studio
I am trying fill x1 x2 x3 x4 x5 into DF2 from DF1 according to DF1$x6.我正在尝试根据 DF1$x6 将 x1 x2 x3 x4 x5 从 DF1 填充到 DF2 中。 I have 800+ unique DF1$x6 observations.我有 800 多个独特的 DF1$x6 观察结果。 Thank you in advance先感谢您
DF1: DF1:
x1 x2 x3 x4 x5 x6
2 a c a 5 a1
o 5 y 7 I a2
H 5 a v 3 a3
0 8 I a 3 a4
DF2 DF2
x1 x2 x3 x4 x5 x6
a4
a2
a4
a1
a1
a4
a3
To get a result below得到下面的结果
DF2 DF2
x1 x2 x3 x4 x5 x6
0 8 I a 3 a4
o 5 y 7 I a2
0 8 I a 3 a4
2 a c a 5 a1
2 a c a 5 a1
0 8 I a 3 a4
H 5 a v 3 a3
This can be a merge/join operation:这可以是合并/加入操作:
merge(DF2[,"x6",drop=FALSE], DF1, by = "x6", all.x = TRUE)
# x6 x1 x2 x3 x4 x5
# 1 a1 2 a c a 5
# 2 a1 2 a c a 5
# 3 a2 o 5 y 7 I
# 4 a3 H 5 a v 3
# 5 a4 0 8 I a 3
# 6 a4 0 8 I a 3
# 7 a4 0 8 I a 3
Or you can use match
in a simplified join-like operaiton, as @Ben suggested in a comment:或者您可以在简化的类似连接的操作中使用match
,正如@Ben 在评论中建议的那样:
DF1[match(DF2$x6, DF1$x6),]
# x1 x2 x3 x4 x5 x6
# 4 0 8 I a 3 a4
# 2 o 5 y 7 I a2
# 4.1 0 8 I a 3 a4
# 1 2 a c a 5 a1
# 1.1 2 a c a 5 a1
# 4.2 0 8 I a 3 a4
# 3 H 5 a v 3 a3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.