【问题标题】:Merging/combining and matching data frames with unequal number of rows in R [duplicate]合并/组合和匹配R中行数不等的数据帧[重复]
【发布时间】:2017-09-04 03:41:03
【问题描述】:

假设我有两个 data.frames df1df2

> df1
    Var1   Var2
1    "A"    "D"
2    "B"    "E"
3    "C"    "F"

> df2
    Var3   Var4
1    "C"    "H"
2    "B"    "I"
3    "G"    "J"
4    "A"    "K"

我想将df1df2 组合/合并,使Var1Var3 的值尽可能匹配,否则NA。重要的是我想保留Var1Var2 的值之间的映射。在这个简单的例子中,我最终会得到:

> df2
    Var3   Var4   Var1   Var2
1    "C"    "H"    "C"    "F"
2    "B"    "I"    "B"    "E"
3    "G"    "J"     NA     NA
4    "A"    "K"    "A"    "D"

关于实现这一目标的一般方法有什么想法吗?每个 data.frame 中的变量数量在现实中不一定像这个例子那样相等。干杯! :)

【问题讨论】:

    标签: r dataframe merge match cbind


    【解决方案1】:

    使用match

    Indices <- match(df2$Var3, df1$Var1)
    
    df2$Var1<-df1$Var1[Indices]
    df2$Var2<-df1$Var2[Indices]
    

    【讨论】:

    • 或更简单地说,cbind(df2, df1[match(df2$Var3, df1$Var1),])
    猜你喜欢
    • 2013-10-18
    • 1970-01-01
    • 2015-04-04
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多