#r
#r
Вопрос:
Я пытаюсь объединить некоторые данные, и мне нужно пройти через некоторый фильтр во время процесса. У меня есть следующие коды, но он сохраняет всплывающее сообщение об ошибке. Кто-нибудь может быстро взглянуть и посмотреть, что не так? Я думаю, что написал это неправильно, и я не знаю, как это исправить.
Большое спасибо.
Summary<-Reduce(function(x, y) merge(x, y, by="Subject", all = TRUE, sort = FALSE),
list(`Demographics Merged`[ , c("project","Subject","DMAGE","SEX","RACE","ETHNIC","FEMCBP")],
`Cancer History`[ , c("project","Subject","CHCTYP","CHCTYPSP")],
`DrugAdminIP` %>% filter(InstanceName %in% c("Day 1", "Day_1"))[ , c("Subject","EXYN","EXDT","EXDSLVL","EXDOSA")]))
ошибка исходит от `DrugAdminIP %>% filter(InstanceName %in% c("Day 1", "Day_1"))[ , c("Subject","EXYN","EXDT","EXDSLVL","EXDOSA")]))
. Я хочу выполнить слияние "Subject","EXYN","EXDT","EXDSLVL","EXDOSA"
из набора DrugAdminIP
данных, и мне также необходимо отфильтровать данные с помощью InstanceName %in% c("Day 1", "Day_1")
Ответ №1:
Вы не можете добавить синтаксис базового [
подмножества к конвейерному filter
вызову — порядок операций делает его неработоспособным. Вместо этого используйте весь базовый или весь dplyr
синтаксис:
# all base
Summary <- Reduce(
function(x, y) merge(x, y, by="Subject", all = TRUE, sort = FALSE),
list(
`Demographics Merged`[ , c("project","Subject","DMAGE","SEX","RACE","ETHNIC","FEMCBP")],
`Cancer History`[ , c("project","Subject","CHCTYP","CHCTYPSP")],
`DrugAdminIP`[`DrugAdminIP`$InstanceName %in% c("Day 1", "Day_1"), c("Subject","EXYN","EXDT","EXDSLVL","EXDOSA")]
)
)
# all dplyr (for the DrugAdminIP)
Summary <- Reduce(
function(x, y) merge(x, y, by="Subject", all = TRUE, sort = FALSE),
list(
`Demographics Merged`[ , c("project","Subject","DMAGE","SEX","RACE","ETHNIC","FEMCBP")],
`Cancer History`[ , c("project","Subject","CHCTYP","CHCTYPSP")],
`DrugAdminIP` %>%
filter(InstanceName %in% c("Day 1", "Day_1")) %>%
select("Subject","EXYN","EXDT","EXDSLVL","EXDOSA")
)
)