使用R语言将数据以表格的形式统计展示
R数据统计-以表格的形式统计展示
将数据以表格的形式统计展示
拿到一批数据时,我们总要先看看数据的基本情况,看看性别,年龄,case, control等这些基本的信息分布,有的时候也要给出相应的P值来说明问题,在R的编程环境中,R包gtsummary就很好的解决了这个需求。下面介绍一下这个包的用法。
1. gtsummary包的安装
#直接安装 |
我安装的时候遇到了一个小的报错,报错提示rlang的版本不够,这个时候最好的办法就是先卸载rlang,然后再安装即可更换到最新版的rlang,解决版本问题
# 卸载rlang |
2. gtsmmary包的使用
测试使用的数据集
head(trial) |
trt | age | marker | stage | grade | response | death | ttdeath |
---|---|---|---|---|---|---|---|
Drug A | 23 | 0.160 | T1 | II | 0 | 0 | 24.00 |
Drug B | 9 | 1.107 | T2 | I | 1 | 0 | 24.00 |
Drug A | 31 | 0.277 | T1 | II | 0 | 0 | 24.00 |
Drug A | NA | 2.067 | T3 | III | 1 | 1 | 17.64 |
Drug A | 51 | 2.767 | T4 | III | 1 | 1 | 16.43 |
Drug B | 39 | 0.613 | T4 | I | 0 | 1 | 15.64 |
2.1 用法示例1-Summary table
# 使用tbl_summary函数对数据进行汇总 |
连续性变量(如表格中的age变量)如果不指定统计方式,默认使用中位数(下四分位数,上四分位数)
的形式
也可以将连续性变量的统计方式改为常用的mean ± SD的形式
trial %>% |
其他输出方式:
as_kable()
输出:输出为markdown格式
Characteristic | Overall, N = 200 | Drug A, N = 98 | Drug B, N = 102 | p-value |
---|---|---|---|---|
Participants age | 47 ± (14) | 47 ± (15) | 47 ± (14) | 0.7 |
Modified grade | 0.9 | |||
I | 68 (34%) | 35 (36%) | 33 (32%) | |
II | 68 (34%) | 32 (33%) | 36 (35%) | |
III | 64 (32%) | 31 (32%) | 33 (32%) | |
Tumor Response | 61 (32%) | 28 (29%) | 33 (34%) | 0.5 |
-
as_hux_table()
输出: 为huxtable 对象,输出文本字符Characteristic Overall, N = 200 Drug A, N = 98 Drug B, N = 102 p-value
────────────────────────────────────────────────────────────────────────────────────
Participants age 47 ± (14) 47 ± (15) 47 ± (14) 0.7
Modified grade 0.9
I 68 (34%) 35 (36%) 33 (32%)
II 68 (34%) 32 (33%) 36 (35%)
III64 (32%) 31 (32%) 33 (32%)
Tumor Response 61 (32%) 28 (29%) 33 (34%) 0.5
────────────────────────────────────────────────────────────────────────────────────
Mean ± (SD); n (%)
Wilcoxon rank sum test; Pearson’s Chi-squared test
Column names: label, stat_0, stat_1, stat_2, p.value
as_tibble()
输出:
# A tibble: 6 x 5
**Characteristic**
**Overall**, N = 200
**Drug A**, N = 98
**Drug B**, N = 102
**p-value**
1 Participants age 47 ± (14) 47 ± (15) 47 ± (14) 0.7
2 Modified grade NA NA NA 0.9
3 I 68 (34%) 35 (36%) 33 (32%) NA
4 II 68 (34%) 32 (33%) 36 (35%) NA
5 III 64 (32%) 31 (32%) 33 (32%) NA
6 Tumor Response 61 (32%) 28 (29%) 33 (34%) 0.5
as_flex_table()
输出:三线表形式输出
label更改示例
trial %>% |
tbl_summary函数参数介绍
tbl_summary( |
参数:
-
data: 使用的数据框
-
by: 提供分组统计的列名,可加引号也可以不加引号。
-
label: 使用list指定表格中显示的变量名,
例如: list(age ~ “changed Age”, stage ~ “Path T Stage”).
如果没有指定,则使用: attr(data$age, “label”), 这会使列名开头大写. 如果参数指定为:NULL, 则直接使用列名。 -
statistic: 指定每个变量的统计方式。 默认 list(all_continuous() ~ “{median} ({p25}, {p75})”, all_categorical() ~ “{n} ({p}%)”).
-
digits: 指定连续型数据汇总统计的小数点位数的公式列表。 如果没有指定,tbl_summary将给出一个适当数量的小数位数来对统计值进行舍入。 当一个变量显示多个统计信息时,提供一个向量而不是整数。
例如,若age变量使用均值±SD的方式统计,则digits = list(age ~ c(1, 2))
参数表示age的均值保留1为小数,SD保留2为小数。 -
type: 指定变量类型的公式列表。
接受的值包括 c(“continuous”, “continuous2”, “categorical”, “dichotomous”), 例如 type = list(age ~ “continuous”, female ~ “dichotomous”). 不指定时,则函数自动提供一个合适的统计类型。 -
value: 为二分变量指定要显示的值的公式列表。
-
missing: 指定表中是否包含NA值的计数。
参数:
"no"
不显示NA值,
"ifany"
在分类下另起一行,行名为Unknown,单独统计NA值,仅在变量存在NA值时统计,默认使用ifany
参数,
"always"
在分类下另起一行,行名为Unknown,单独统计NA值,为所有变量都统计NA值,变量没有NA值时,Unknown行统计值为0, -
missing_text: 设置缺失值(NA)的行名. 默认为Unknown。
-
sort: 指定要对分类数据执行排序的类型的公式列表。可选按频率(
frequency
)或字母数字降序排序(alphanumeric
), 例如按照评率排序:sort = list(everything() ~ “frequency”) -
percent: 指定返回的百分比类型。 必须是 “column”, “row”, 或者 “cell”. 默认为 “column”.
-
include: 要包含在汇总表中的变量。 默认为 everything()
-
group: 弃用。迁移到
add_p()
添加P值
2.2 用法示例2-Regression Models
使用tbl_regression()
以表格的形式展示回归模型的结果。更加详细的教程参考: tutorial
# 逻辑回归 |
2.3 用法示例3-并排显示回归模型
使用tbl_merge()
函数并排展示多个回归模型的结果
library(survival) |
Reference: