我试图了解目前在疗养院服用一系列药物的患者是否在某种感兴趣的药物和死亡之间服用了任何其他药物。感兴趣的药物是布洛芬
id <- c('1', '1', '1','1','2','2','2')
drug <- c('ibuprofen','aleve','tylenol','claritin', 'ibuprofen','aleve','tums')
start <- c('100','105','50','115','20','-9','30')
death <- c('120','120','120','120','50','50','50')
我期望看到的结果表显示了布洛芬之后和死亡之前服用的药物
id <- c('1','1','2')
drug <- c('aleve','claritin','tums')
start <- c('105','115','30)
到目前为止,这是我拥有的代码,我只是过滤掉以向患者展示所需的药物。但我对如何前进感到困惑。
y <- df %>%
filter(drug == "ibuprofen")
一行字!:
dplyr::filter(df, start > start[which(drug == 'ibuprofen')], .by = id)
说明:
which()
获取某些内容为 true 的索引,在本例中为药物为布洛芬的行。
然后我们可以用它来查找布洛芬行的起始值,然后检查每一行,如果起始值在布洛芬开始之后。