У меня есть огромный фрейм данных, из которого мне нужно удалить строки, которые не содержат никаких значений, присутствующих в векторе (векторное имя «коды»).
Пример фрейма данных:
df <- data.frame(ID = as.integer(c(10001, 10002, 10004, 10005, 10006)),
X1 = as.integer(c(150, 120, 175, 160, 1)),
X2 = as.integer(c(1, 1412415, 16420, 19920, 150)))
> df
ID X1 X2
1 10001 150 1
2 10002 120 1412415
3 10003 175 16420
4 10004 160 19920
5 10005 1 150
codes <- c(120, 150)
codes <- as.integer(codes)
Я пробовал несколько вариантов, вот один неудачный пример:
newdf <- df[do.call(paste, df[2:3]) %in% codes,]
> newdf
[1] ID X1 X2
<0 rows> (or 0-length row.names)
Вместо этого newdf должен содержать строки 1, 2 и 5 с идентификационными номерами 10001, 10002 и 10005 как таковые:
> newdf
ID X1 X2
1 10001 150 1
2 10002 120 1412415
5 10005 1 150