gpt4 book ai didi

r - 如何在 1 列上合并 2 列

转载 作者:行者123 更新时间:2023-12-04 11:34:36 25 4
gpt4 key购买 nike

我想合并 2 个 df,其中 df1 包含 2 列和 df2 1 列,在这种情况下如何应用函数合并?

这是示例案例:

df1 <- data.frame(var1=letters[1:5],var2=letters[6:10])
df2 <- data.frame(var3=letters[1:10])

错误尝试:
merge(df1,df2,by.x=c("var1","var2"),by.y="var3",all.y=TRUE)

如何合并这两个 df 以便匹配搜索使用 df1 (var1 & var2) 的两列并对 df2 (var3) 进行操作?

期望的输出:
    var1  var2   var3 
1 a f a
2 b g b
3 c h c
4 d i d
5 e j e
6 <NA> <NA> f
7 <NA> <NA> g
8 <NA> <NA> h
9 <NA> <NA> i
10 <NA> <NA> j

编辑:改进的数据(我希望):
df1 <- data.frame(var1=c(letters[1:5],rep("x",5)),var2=c(letters[6:10],rep("x",5)))
df2 <- data.frame(var3=letters[1:10])

期望的输出:
     var1  var2   var3 
1 a f a
2 b g b
3 c h c
4 d i d
5 e j e
6 x x f
7 x x g
8 x x h
9 x x i
10 x x j

最佳答案

这是一个可能的 data.table根据第一个所需输出的解决方案

library(data.table)
setkey(setDT(df2), var3)
df2[df1, `:=`(var1 = i.var1, var2 = i.var2)][]
# var3 var1 var2
# 1: a a f
# 2: b b g
# 3: c c h
# 4: d d i
# 5: e e j
# 6: f NA NA
# 7: g NA NA
# 8: h NA NA
# 9: i NA NA
# 10: j NA NA

关于r - 如何在 1 列上合并 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28677069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com