2014-01-22 4 views
4

Я хочу сравнить два кадра данных по частям. Вот пример из моих кадров данных:Сравните два кадра по частям R

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 (оба колонок должны совпадать) и сохранить его в новом Рамка.

Любая помощь будет оценена по достоинству.

ответ

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 
Смежные вопросы