这里有2个数据帧:
df1 <- data.frame(ID=c(1,2,3,4))
df1
df2 <- data.frame(ID=c(1,3))
df2
我如何加入他们以获得以下输出?
# ID.1 ID.2
# 1 1
# 2
# 3 3
# 4
谢谢!
答案 0 :(得分:2)
一种选择是使用match
data.frame(ID.1 = df1$ID, ID.2 = df2$ID[match(df1$ID, df2$ID)])
# ID.1 ID.2
#1 1 1
#2 2 NA
#3 3 3
#4 4 NA
答案 1 :(得分:2)
您可以在加入之前复制df2中的ID列:
library(tidyverse)
df1 <- data.frame(ID=c(1,2,3,4))
df2 <- data.frame(ID=c(1,3)) %>%
mutate(ID.2 = ID)
df1 %>%
left_join(df2, by = c("ID" = "ID"))
ID ID.2
1 1 1
2 2 NA
3 3 3
4 4 NA