如何使用group by和summary计算R中子组的百分比

cl25kdpy  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(101)
| Cohort | Diabetes Type| Smoking Status
| 1      | 2            | Current
| 0      | 1            | Former
| 1      | 2            | Unknown
| 1      | 2            | Former
| 0      | 1            | Current
| 1      | 2            | Current

表名为Smoking_full
我尝试了以下代码:

Smoking_adhere <-Smoking_full %>%
group_by(Cohort) %>%
summarise(nSmoking = sum(!is.na(SmokingStatus)),
#perSmoking = paste0(round(SmokingStatus/sum(SmokingStatus)*100, 2), "%"),
#(pSmoking = 100 * n() / nrow(SmokingStatus)),
) %>%

我可以把它归类为totaln,但我不能得到它的百分比。
我希望tibble也显示每个组中用户的百分比。

wmvff8tz

wmvff8tz1#

我不是很清楚您希望输出的样子,但是您可以使用formatable包,通过从formattable::percent调用函数来获得百分比
根据你的样品

df.2<-df%>%
  group_by(Cohort)%>%
  summarise(nSmooking = n())%>%
mutate(perSmoking=formattable::percent(nSmooking/sum(nSmooking),digits = 2))

它给出了

Cohort nSmooking perSmoking
  <chr>      <int> <formttbl>
1 0              2 33.33%    
2 1              4 66.67%

相关问题