R中两个数据帧之间的差异

时间:2013-12-16 23:13:39

标签: r merge

我有两个数据帧,每个数据帧有9列,而DF2是DF1的子集。我正在尝试创建第三个数据帧,其中只包含DF2中不存在的DF1内容。

最有效的方法是什么?我可以编写一个while循环,但我想知道是否有另一种方法(除了sqldf因为某些原因我无法将其上传到我的R Studio中)我能做到这一点吗?

1 个答案:

答案 0 :(得分:1)

以下内容适用(直接来自Identify records in data frame A not contained in data frame B

fun.12 <- function(x.1,x.2,...){
     x.1p <- do.call("paste", x.1)
     x.2p <- do.call("paste", x.2)
     x.1[! x.1p %in% x.2p, ]
}

DF1 <- data.frame(a=c(1,2,3,4,5), b=c(1,2,3,4,5))
DF2 <- data.frame(a=c(1,1,2,3,4), b=c(1,1,99,3,4))
fun.12(DF1, DF2)

#   a b
# 2 2 2
# 5 5 5