取两个数据集:
df1 <- data.frame(Name=c("Andy", "Henry", "Tom", "Andy", "Martin"),
Age =c(55, 46, 32, 38, 61),
ID =c(1:5))
df2 <- data.frame(Name=c("Andy", "Henry", "Tom", "Andy", "Alex"),
Age =c(55, 46, 32, 38, 24))
这里有四种不同类型的合并,你可以根据你想对缺失的观察做什么:
merge(df1, df2, on=c("Name", "Age"))
merge(df1, df2, on=c("Name", "Age"), all.x=TRUE)
merge(df1, df2, on=c("Name", "Age"), all.y=TRUE)
merge(df1, df2, on=c("Name", "Age"), all=TRUE)
您也可以使用 data.table 连接:
data.table(df1)[data.table(df2), on=c("Name", "Age")]
更正确:
setDT(df1)
setDT(df2)
setkey(df1, "Name", "Age")
setkey(df2, "Name", "Age")
df1[df2]