R语言小贴士(1)–gtsummary

简介:gtsummary包可实现快速常用论文表

详细参数设置参考官方网址

Gtsummary 官方网站

基线表

1.t检验
# 补充正态性检验
mytest1 <-  function(data, variable, ...) {
  shapiro.test(data[[variable]])$p.value
}
mytest2 <-  function(data, variable, ...) {
  ks.test(data[[variable]], "pnorm", mean=mean(data[[variable]],na.rm=T), sd=sd(data[[variable]],na.rm=T))$p.value
}
#perform kolmogorov-smirnov test
t1 <- adam %>% select(a1,a3,a4) %>% #选择需要分析的变量
  tbl_summary(by = a1, #指定分组变量
              missing="ifany",  #指定是否显示变量的缺失值个数
              statistic = list(all_continuous() ~ "{mean}({sd})", #连续性变量的统计量设定
                               all_categorical() ~ "{n} ({p}%)"),#分类变量的统计量设定
              digits = list(all_continuous() ~ 2,
                            all_categorical()~c(0,2))) %>% #设定分类统计量的小数位数
  add_overall() %>% 
  add_difference(test=all_continuous() ~"t.test",estimate=all_continuous()~ label_style_sigfig(digits = 4),pvalue_fun = ~ style_pvalue(.x, digits = 3)) %>% 
  modify_header(statistic ~ "**T Statistic**") %>% #添加检验统计量
  add_stat(fns=all_continuous()~mytest1) %>%
  modify_header(add_stat_1 = "**shapiro test**")  %>% 
  add_stat(fns=all_continuous()~mytest2) %>%
  modify_header(add_stat_2 = "**ks test**")  %>% 
  modify_fmt_fun(statistic ~ label_style_sigfig(digits = 4),add_stat_1 ~label_style_pvalue(digits = 2),add_stat_2 ~label_style_pvalue(digits = 2))  #检验统计量的小数位数
t1


2.wilcoxon检验
#添加另一种输出z值的wilcoxon结果
mytest3 <-  function(data, variable,by, ...) {
  wilcox_test(data[[variable]] ~ data[[by]])@statistic@teststatistic
}
mytest4 <-  function(data, variable,by, ...) {
  pvalue(wilcox_test(data[[variable]] ~ data[[by]]))
}
t2 <- adam %>% select(a1,a3,a4) %>% #选择需要分析的变量
  tbl_summary(by = a1, #指定分组变量
              missing="always",  #指定是否显示变量的缺失值个数
              statistic = list(all_continuous() ~ "{median}({p25},{p75})", #连续性变量的统计量设定
                               all_categorical() ~ "{n} ({p}%)"),#分类变量的统计量设定
              digits = list(all_continuous() ~ 2,
                            all_categorical()~c(0,2))) %>% #设定分类统计量的小数位数
  add_overall() %>% 
  add_difference(test=all_continuous() ~"wilcox.test",estimate=all_continuous()~ label_style_sigfig(digits = 4),pvalue_fun = ~ style_pvalue(.x, digits = 3)) %>% 
  modify_header(statistic ~ "**Test Statistic**") %>% #添加检验统计量
  add_stat(fns=all_continuous()~mytest3) %>%
  modify_header(add_stat_1 = "**statistic Z**") %>% 
  add_stat(fns=all_continuous()~mytest4) %>%
  modify_header(add_stat_2 = "**wilcox2 p**") %>%
  modify_fmt_fun(statistic ~ label_style_sigfig(digits = 4),add_stat_1 ~ label_style_sigfig(digits = 4),add_stat_2  ~ label_style_pvalue(digits = 2))
t2


#结果导出
t1 %>%  as_hux_xlsx(file = 'table1.xlsx')  #结果输出为excel表
#将结果转为word表
library(officer)
library(flextable)
table <- as_hux_table(t1) #将t1转为huxtable表
ft <- flextable(table)  #继续转换为可用格式
doc <- read_docx() 
doc <- doc %>%
body_add_par("标题", style = "Normal") %>% #添加标题和格式
body_add_flextable(ft) %>% #添加表格
body_add_par("注:与常规组治疗后比较,“P<0.05;与tDCS组治疗后比较,P<0.05。", style = "Normal") %>% #添加脚注
body_add_par("", style = "Normal") # Blank line between tables
print(doc, target = "output_tables.docx")  #输出word
table1_1 <- t1 %>% as_tibble() #也可转成tibble格式进一步调整 

语法简介:

“select”选择需要被分析的变量(包括分组变量)

tbl_summary函数语法

“by=”指定分组变量

“statistic=”指定变量的统计值,“all_continuous() ~”指定连续性变量,“all_categorical()”指定分类变量

“digits =”指定显示的统计量的小数位数,如要分别指定可以用向量的形式

“add_p(test=all_continuous()~”t.test”,pvalue_fun = ~ style_pvalue(.x, digits = 3))”添加p值,指定检验方法和p值的小数位数

add_difference(test=all_continuous() ~”t.test”,estimate=all_continuous()~ label_style_sigfig(digits = 4),pvalue_fun = ~ style_pvalue(.x, digits = 3)) #add_p的上位替换,多增加了差值的置信区间

“add_overall()”指定添加汇总列

“add_stat_label”添加统计量显示标签

“modify_header(statistic ~ “Test Statistic“)”添加检验统计量

add_stat(fns=all_continuous()~mytest1) 增加自定义统计量列

modify_header(add_stat_1 = “**statistic Z**”) 定义add_stat增加列的列名

#定义检验统计量和自定义统计量的小数位数(label_style_pvalue表示p值风格小数)

modify_fmt_fun(statistic ~ label_style_sigfig(digits = 4),add_stat_1 ~ label_style_sigfig(digits = 4),add_stat_2 ~ label_style_pvalue(digits = 2))

“as_hux_xlsx(file = ‘table1.xlsx’)” 结果输出为excel表

注意事项:

add_p函数默认添加的检验方法是非参数检验,如需要t检验p值需要使用“test=all_continuous()~”t.test””

有一些离散型变量如年龄或者分类数较多的变量,默认会识别为分类变量,可以用“type=”来指定其为连续性变量(eg:type=list(a3~”continuous”) )

默认会将二分类变量单行显示(可用value参数指定要显示的分类),如需修改为两行显示需指定type = list(all_dichotomous() ~ “categorical”)

有时可能出现添加add_overall() 时汇总列出现在两组中间的情况,这时需设定分组变量为factor格式

数据结果展示:

回归表

评论

  1. 雨天隐形人
    9 月前
    2024-8-03 0:36:48

    欢迎留言探讨

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇