Сравните два data.frames, чтобы найти строки в data.frame 1 и data.frame 2, которые имеют одинаковые значения в выбранных столбцах - PullRequest
1 голос
/ 31 августа 2011

У меня есть 2 фрейма данных (a1 и a2)

a1
A   B   C   D
1   A   6   8
2   D   7   3 #**
3   X   3   3

a2
A   B   C   D
4   D   2   3 #**
5   Z   3   5
6   X   3   4


a1 <- data.frame(
  A = 1:3,
  B = c("A", "D", "X"),
  C = c(6, 7, 3),
  D = c(8, 3, 3)
)
a2 <- data.frame(
  A = 4:6,
  B = c("D", "Z", "X"),
  C = c(2, 3, 3),
  D = c(3, 5, 4)
)

Я хочу получить кортежи (a1 $ A, a2 $ A) для строк, имеющих одинаковые значения в столбцах B и D

В этом примере я бы получил (2,4), потому что они имеют одинаковые значения в столбцах B и D, соответственно D и 3

1 Ответ

3 голосов
/ 31 августа 2011

Используйте merge для объединения фреймов данных.

merged <- merge(a1, a2, c("B", "D"))
subset(merged, select = c(A.x, A.y))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...