2016-02-19 5 views
0

ГИЭ, У меня есть два кадра данных, которые, как это, напримерПодписавшихся между двумя кадрами данными

df1 

V1 V2 
a b 
m n 
h i 
l m 
n i 
e f 

и

df2 

    V1 V2 
    a b 
    c d 
    e f 
    b a 

, и я хочу, чтобы получить строки, которые являются одинаковыми в обеих данных кадры в новом одном как этот

res2 
V1 V2 
a b 
e f 
b a 

Я попытался

res1<-df1[df1$v1%in%df2$V1, ] 
res2<-res1[res1$V2%in%df2$V2, ] 

, но я не увенчался успехом. Любая лучшая идея?

ответ

1

Вы должны объединить свои два кадра данных на основе V1 V2 с драм внутреннее соединение:

df1 <- data.frame(V1 = c("a", "m", "h", "l", "n", "e"), V2 = c("b", "n", "i", "m", "i", "f"), stringsAsFactors = F) 

df2 <- data.frame(V1 = c("a", "c", "e"), V2 = c("b", "d", "f"), stringsAsFactors = F) 

merge(df1, df2, by = c("V1", "V2")) 

Результат будет уникальная пара V1 и V2, которые находятся на df1 и df2.

В зависимости от того, хотите ли вы сохранить значения дубликатов в df1 или df2, вы также можете использовать опции all.x = T или all.y = T.

+0

Спасибо, но что я могу сделать, если бы у меня был пример в строке b a, и я тоже хотел их получить? @YCR – minoo

Смежные вопросы