根据其他2个数据框中的值创建新列

时间:2020-09-28 23:06:44

标签: r merge

我想创建一个合并其他df中2列元素的df。

以下是df1:

id visit v1
1   4    25
1   5    23
2   1    8

以下是df2:

id visit v2
1   3    11
1   4    5
2   1    9

我想要:

id visit v1  v2
1   3    NA  11
1   4    25   5
1   5    23  NA
2   1    8    9

我尝试过

df3 <- bind_rows(df1, df2) %>%
 group_by(id, visit) %>%
 distinct() %>%
 arrange(id, visit)

但是它没有对id和visit进行精确合并。请参阅下面的片段片段,其中参与者1和访问者4没有合并。

id visit v1  v2
1   3    NA  11
1   4    25   NA
1   4    NA   5   

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我们可以使用full_join

library(dplyr)
full_join(df1, df2)

答案 1 :(得分:0)

使用基本语法:

df1 <- data.frame(cbind(c(1,1,2,3,3), c(4,5,1,1,2)))
names(df1) <- c("id", "visit")

df2 <- data.frame(cbind(c(1,1,2,3,3), c(3,4,1,3,4)))
names(df2) <- c("id", "visit")

merge(x = df1, y = df2, by = c("id", "visit"), all = TRUE)

关于加入here的好帖子