Поиск значений в столбце «а», который имеет разные значения в столбце «б» для двух разных наборов данных - PullRequest
0 голосов
/ 29 сентября 2019

Данные содержат несколько столбцов и 3000 строк

То же OrderNo, но разные Ordertype.

Я хочу получить все OrderNo, чьи Ordertype различны в двухфрейм данных.

Я выделил два столбца из двух фреймов данных и установил их в порядке возрастания. Затем я попытался использовать функцию cbind, чтобы объединить два столбца и найти пропущенные значения в одном из столбцов.

xxx <- data.frame( orderNo = c(1:10), Ordertype = c("a", "b", "c", "d", "a", "b", "c", "d", "e", "f"))
yyy <- data.frame( orderNo = c(1:10), Ordertype = c("a", "b", "c", "d", "a", "b", "e", "d", "e", "f"))

В приведенном выше примере: OrderNo «7» соответствует «c» в одном фрейме данных и «e» в другом фрейме данных. Мне нужен набор всех таких чисел с другим значением в столбце Ordertype в качестве выходных данных.

1 Ответ

0 голосов
/ 30 сентября 2019

Звучит так, как будто вы хотите кадр данных, который содержит различия между двумя кадрами данных, сопоставленными (включая) orderNo. Это правильно?

Одна из возможностей:

res <- merge(xxx, yyy, by = "orderNo")
res[res[,2] != res[,3], ]

  orderNo Ordertype.x Ordertype.y
7       7           c           e

Используя dplyr и anti_join, вы можете сделать следующее, чтобы найти различия:

library(dplyr)
inner_join(anti_join(xxx, yyy), anti_join(yyy, xxx), by='orderNo')

  orderNo Ordertype.x Ordertype.y
1       7           c           e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...