问题:在gtsummary中,tbl_summary函数计算总的非缺失观测值中的列百分比。我希望gtsummary从丢失和未丢失的观察值总数中计算百分比。
来自http://www.danieldsjoberg.com/gtsummary/articles/gallery.html的gtsummary表库的示例
trial[c("trt", "age", "grade")] %>%
tbl_summary(
by = trt,
missing = "no",
statistic = all_continuous() ~ "{median} ({p25}, {p75}) [N = {N_nonmiss}]"
) %>%
modify_header(stat_by = md("**{level}**<br>N = {n} ({style_percent(p)}%)")) %>%
add_n() %>%
bold_labels() %>%
modify_spanning_header(starts_with("stat_") ~ "**Chemotherapy Treatment**")等级没有遗漏观察,因此药物A组中35名1级疾病患者为35/98 (36%)。
现在,将3级重新编码为缺失:
trial$grade[trial$grade %in% "III"] <- NA
trial$grade <- droplevels(trial$grade)重新运行tbl_summary
trial[c("trt", "age", "grade")] %>%
tbl_summary(
by = trt,
missing = "no",
statistic = all_continuous() ~ "{median} ({p25}, {p75}) [N = {N_nonmiss}]"
) %>%
modify_header(stat_by = md("**{level}**<br>N = {n} ({style_percent(p)}%)")) %>%
add_n() %>%
bold_labels() %>%
modify_spanning_header(starts_with("stat_") ~ "**Chemotherapy Treatment**")1级现在表示为67个(52%)非丢失obs中的35个。药物A组。我仍然希望将百分比表示为98人的36%。在gtsummary中有什么方法可以做到这一点吗
发布于 2020-08-29 04:50:41
我认为获得所需内容的最好方法是使用forcats::fct_explicit_na()函数将缺少的值显式表示为NA。当NA值是一个因子的水平时,它将被包括在百分比计算的分母中。
library(gtsummary)
library(tidyverse)
trial %>%
select(response, trt) %>%
# make missing value explicit for categorical variables, using fct_explicit_na
mutate(response = factor(response) %>% fct_explicit_na()) %>%
# summarize data
tbl_summary(by = trt)

这个解决方案对你有效吗?
https://stackoverflow.com/questions/63640473
复制相似问题