Отфильтровать набор данных B, используя уровни только в A и B - PullRequest
0 голосов
/ 06 августа 2020

У меня есть наборы данных A и B с идентичной структурой. Я хочу отфильтровать набор B по набору уровней в пределах одного фактора, где уровни одинаковы как в A, так и в B. Другими словами, чтобы сохранить строки в B, используя общие уровни для одного фактора в A и B.

Я использовал следующее для извлечения общих уровней

InBoth <- intersect(levels(A$FactorName , B$FactorName)

Я считаю, что это вектор chr и ДЕЙСТВИТЕЛЬНО дает правильный список общих значений.

Я просто не могу похоже, применяет этот список к набору фильтров B с использованием InBoth, так что B впоследствии содержит только строки, где B$Factorname находится в наборе InBoth.

Я относительно новичок в R и учусь, как I go, так что заранее большое спасибо, если вы можете помочь.

ОБНОВЛЕНИЕ Как только я отправил ... Я подумал о другом. Следующее работает для подмножества B с использованием (одного) известного общего уровня

BFiltered <- B[(B$FactorName == "xxx",]

Но я хочу, чтобы BFiltered включал все уровни в элементе InBoth (которые появляются в части значений среды). То есть как заменить "xxx" на InBoth?

1 Ответ

0 голосов
/ 06 августа 2020

Это может сработать.

df_B[df_B$V1 %in% df_A$V1, ]

Это отфильтрует df_B, сохраняя только наблюдение, где у него одинаковые уровни переменной V1 в df_A

...