Как фильтровать строку таблицы на основе внешнего списка?
(1) У меня есть большая таблица, прочитанная в R с более чем 10000 строк и 10 столбцов.
(2) Третий столбец таблицы содержит название больниц. Некоторые из них дублируются или даже больше.
(3) У меня есть список названий больниц, например. 10 из них необходимы для дальнейшего изучения.
(4) Не могли бы вы научить меня, как извлечь все строки на шаге 1 с именами, перечисленными на шаге 3?
Вот более короткий пример моего входного файла;
Patients Treatment Hospital Response
1 A YYY Good
2 B YYY Dead
3 A ZZZ Good
4 A WWW Good
5 C UUU Dead
У меня есть список больниц, которые мне интересны для дальнейшего изучения, т.е. YYY и UUU. Как сгенерировать таблицу вывода следующим образом: R?
Patients Treatment Hospital Response
1 A YYY Good
2 B YYY Dead
5 C UUU Dead
Ответы
Ответ 1
Используйте оператор %in%
.
#Sample data
dat <- data.frame(patients = 1:5, treatment = letters[1:5],
hospital = c("yyy", "yyy", "zzz", "www", "uuu"), response = rnorm(5))
#List of hospitals we want to do further analysis on
goodHosp <- c("yyy", "uuu")
Вы можете либо индексировать непосредственно в свой объект data.frame:
dat[dat$hospital %in% goodHosp ,]
или используйте команду подмножества:
subset(dat, hospital %in% goodHosp)