首页 > 解决方案 > 统计未服药的患者

问题描述

我有一个数据框,其中患者随着时间的推移对药物使用有多次观察。一些患者一直使用药物,另一些患者有差距,而我正在尝试计算从未使用过药物的患者。

我无法显示实际数据,但这是我正在使用的示例数据框。

 patid meds
     1    0
     1    1
     1    1
     2    0
     2    0
     3    1
     3    1
     3    1
     4    0
     5    1
     5    0

因此,这两名患者(4 和 2)从未使用过药物。这就是我要找的。

我对 R 相当陌生,不知道如何做到这一点,任何人都将不胜感激。

标签: rdataframe

解决方案


dplyr这是包装的另一种选择。

library(dplyr)
df <- data.frame(patid = c(1,1,1,2,2,3,3,3,4,5,5),
                 meds = c(0,1,1,0,0,1,1,1,0,1,0))
df %>% 
    distinct(patid, meds) %>% 
    arrange(desc(meds))%>% 
    filter(meds == 0 & !duplicated(patid))
#   patid meds
#1     2    0
#2     4    0 

推荐阅读