R 我想通过 var "evnt" 通过 group_by 或 nrow 计算患者数量



我有一个格式的数据帧

Id_patient Evnt_chr
1         30     evnt
2         30     evnt
3         30 Not evnt
4          1 Not evnt
5          1 Not evnt
6          9     evnt
7         89     evnt
8         89 Not evnt

我需要获得以下形式的数据帧:

Evnt_chr     Nb_id_patient  %
evnt         3              75
Not_evnt     1              25

感谢您的帮助

Mathieu

使用dplyr:

library(dplyr)
df %>%
group_by(Id_patient) %>% 
summarize(evnt = if(any(Evnt_chr == "evnt")) "evnt" else "Not evnt") %>%
`[[`("evnt") %>%
table() %>%
cbind( 100 * ./sum(.)) %>%
`colnames<-`(c("Nb_id_patient", "%"))
#>          Nb_id_patient  %
#> evnt                 3 75
#> Not evnt             1 25

最新更新