简体   繁体   English

使用 dataframe 作为键来根据 R Studio 中的一列值填充另一个

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM