Соответствие 2 столбцам в 2 отдельных фреймах данных с разным порядком и возвращение еще одного значения
У меня есть 2 кадра данных, где я ищу, чтобы соответствовать 2 столбцам текстовых данных (я знаком с использованием функции match() для сопоставления кадров данных, используя один столбец).
Кадр данных A является подмножеством кадра данных B, но данные в 2 столбцах могут отображаться в обратном порядке, то есть Dog-Cat может быть Cat-Dog. Кадр данных B также содержит дополнительный столбец числовых значений. Я хочу сопоставить фрейм данных A с фреймом B, а затем вернуть числовой столбец. Будет совпадение во всех случаях.
Фрейм данных A
Cat Dog
Mouse Cat
Rat Cat
Rat Dog
Фрейм данных B
Giraffe Cat 0.7
Rat Cat 0.2
Cat Mouse 0.6
Cat Dog 0.9
Giraffe Elephant 0.1
Dog Rat 0.3
Соответствующие данные должны прочитать
Cat Dog 0.9
Mouse Cat 0.6
Rat Cat 0.2
Rat Dog 0.3
Я пытался с match()
и с попыткой объединить тестовые строки. Также не уверен, если grepl()
поможет здесь.
1 ответ
Выполните слияние нормально, поменяйте местами столбцы и rbind
два результата:
rbind( merge(A,B), merge(A,B, by.x=c('V1', 'V2'), by.y=c('V2', 'V1')))
V1 V2 V3
1 Cat Dog 0.9
2 Rat Cat 0.2
3 Mouse Cat 0.6
4 Rat Dog 0.3