临床医学研究中,一个非常常见的需求就是,如何制作一个简答,明确,带有各种汇总信息的三线表,当然三线表是基础,向其中添加各种汇总信息,统计信息,注释信息能够让研究显得更加清晰明确,统计分析有据可依。
R中有很多工具可以制作三线表,也有很多工具可以做统计分析,但缺少一个统一起来且能顺畅输出的框架,这里可以使用gtsummary和flextable就能完成这一点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| library(gtsummary) librarya(flextable)
allrisks <- rbind(highrisk,lowrisk) allrisks$Tumor_Sample_Barcode <- rownames(allrisks) infclinical <- merge(infclinical,allrisks,by = "Tumor_Sample_Barcode")
infclinical <- infclinical[,-1]
infclinical <- as_tibble(infclinical,rownames = NULL) infclinical
inf_name <- colnames(infclinical) inf_name
library(gtsummary)
table2 <- tbl_summary( infclinical, by = riskgroup, statistic = list(all_continuous() ~ "{mean} ({sd})"), missing = "no" ) %>% add_n() %>% add_p() %>% add_overall() %>% modify_header(label = "**Variable**") %>% bold_labels() table2 library(tidyverse) table2%>% as_gt() %>% gt::gtsave("./table2.rtf")
table2 %>% as_flex_table() %>% flextable::save_as_html()
|
注意,为了整洁起见,最好输出为html,效果非常好,输出为rtf也可以,但是输出为docx容易乱码,推测可能是编码的问题,但这东西不好折腾,最佳选择就是不要折腾,输出html大家都好。