R 按组查找非零值的分数
我有一个data.frame,如下所示。我想知道按R 按组查找非零值的分数,r,dplyr,R,Dplyr,我有一个data.frame,如下所示。我想知道按百分比分组的非零总剂量值的比例和是否具有传染性。注意:并非所有百分比组中的行数都相同 df<-data.frame(Total_dose=runif(1000),percent=rep(c("50","60","75","90"),each=250),is_infectious=sample(c(0,1),1000, replace = TRUE)) 期望输出
百分比分组的非零总剂量
值的比例
和是否具有传染性
。注意:并非所有百分比组中的行数都相同
df<-data.frame(Total_dose=runif(1000),percent=rep(c("50","60","75","90"),each=250),is_infectious=sample(c(0,1),1000, replace = TRUE))
期望输出:
N Total_dose>0 | percent | is_infectious | fraction
50/56000 | 50 | 1 | 0.0008928571
45000/56000 | 50 | 0 | 0.8035714
2000/56000 | 60 | 1 |
48000/56000 | 60 | 0 |
这方面的尝试基于一个已经消失的答案,并使之成为一般性的答案
df%>%
rename(variable=percent) %>%
select(Total_dose,variable) %>%
group_by(variable) %>%
mutate(n=n()) %>%
collect() %>%
group_by(variable) %>%
dplyr::summarise(prop_non_zero = round(sum(Total_dose != 0)/ n *100)) %>%
group_by(variable) %>%
summarise(prop_non_zero=median(prop_non_zero)) %>%
arrange(variable)
也许不必比这更复杂:
库(胶水)
df%>%
组别(感染率)%>%
总结(
分数=总和(总剂量!=0)/总和(df$百分比百分比百分比百分比),
`N总剂量>0`=胶水({sum(总剂量!=0)}/{sum(df$百分比百分比百分比)})
)%%>%重新定位(`N总剂量>0`)
输出:
`N Total_dose>0` percent is_infectious fraction
<glue> <dbl> <dbl> <dbl>
1 110/250 50 0 0.44
2 93/250 50 1 0.372
3 86/250 60 0 0.344
4 106/250 60 1 0.424
5 101/250 75 0 0.404
6 104/250 75 1 0.416
7 111/250 90 0 0.444
8 89/250 90 1 0.356
同样的输出。非常感谢您的回答和帮助!
df%>%
rename(variable=percent) %>%
select(Total_dose,variable) %>%
group_by(variable) %>%
mutate(n=n()) %>%
collect() %>%
group_by(variable) %>%
dplyr::summarise(prop_non_zero = round(sum(Total_dose != 0)/ n *100)) %>%
group_by(variable) %>%
summarise(prop_non_zero=median(prop_non_zero)) %>%
arrange(variable)
`N Total_dose>0` percent is_infectious fraction
<glue> <dbl> <dbl> <dbl>
1 110/250 50 0 0.44
2 93/250 50 1 0.372
3 86/250 60 0 0.344
4 106/250 60 1 0.424
5 101/250 75 0 0.404
6 104/250 75 1 0.416
7 111/250 90 0 0.444
8 89/250 90 1 0.356