df <- data.frame(X = c("a", "b", "c", "a", "b", "c", "a", "b", "c", "d" , "a", "b", "c", "d", "e"),
Y = c("w", "w", "w", "K", "K", "K", "L", "L", "L", "L", "Z", "Z", "Z", "Z", "Z"))
Обратите внимание, что первый вектор имеет 5 уровней, а второй - 4 уровня. Моя цель состоит в том, чтобы выбрать линии df, которые имеют все общие уровни вектора 1 как вектор 2. То есть я хочу выбрать линии, которые имеют уровни «a», «b» и «c», поскольку «d» появляется только дважды »и "появляется только в векторе 1.
Я попытался составить список с общими уровнями и оставить только строки с общими уровнями по подмножеству. Однако, это не работает, потому что этот список уровней не генерирует адрес строк, которые я хочу удалить. Пример:
common <- c ("a", "b", "c")
df2 <- df [c(common),]
В моем реальном df есть 64 общих уровня, так что "вручную" не бывает. Кто-нибудь может мне помочь?