按部分R比较两个帧

时间:2014-01-22 19:32:54

标签: r dataframe compare

我想按部分比较两个数据帧。以下是我的数据框示例:

a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = c(1,6,3,4), b=letters[1:4])

我想写一个函数,它找到a1中的两个连续行,它们也存在于数据帧a2中(两列都必须匹配)并将其保存在新帧中。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

dual.matches <- match(a1$a, a2$a) == match(a1$b, a2$b) 
sequential.dual.matches <- with(rle(dual.matches), rep(replace(values, lengths==1, FALSE), lengths))

a1[sequential.dual.matches, ]
#   a b
# 3 3 c
# 4 4 d