Table 1 对于我们SCI论文来说是至关重要的,通常用来说明我们研究数据的基线情况如何,对于研究结论的可靠性也是至关重要。所以如何生成制作Table 1 很有讲究。很多人使用WORD制作,也有人使用EXCEL制作,还有人使用SPSS制作。但是都存在一些弊端。我们今天再给大家介绍一种如何通过R语言来自动生成Table 1 ,而且是带P值的那种哦!

> install.packages("table1") 首先我们加载table 1这个函数

> library(table1)

> melanoma2 <- melanoma 加载示例数据

> head(melanoma2)

从数据示例中,我们发现status,sex,ulcer为分类资料,其中status为多分类资料。age,thickness为定量资料。

我们的目的是依据status作为因变量,来制作table1.

melanoma2\$status <-

factor(melanoma2\$status,
levels=c(2,1,3),
labels=c("Alive", # Reference
"Melanoma death",
"Non-melanoma death"))

以上代码主要是给status加个label,标签

table1(~ factor(sex) + age + factor(ulcer) +

thickness | status, data=melanoma2)

以上代码为table1函数的主题函数,factor的意思是将sex,ulcer变量转换为因子。生成如下Table 1

但是生成的这个Table 1不是很好看,例如sex的标签没有,如何让它更加漂亮呢?

melanoma2\$sex <-
factor(melanoma2\$sex, levels=c(1,0),
labels=c("Male",
"Female"))
melanoma2\$ulcer <-
factor(melanoma2\$ulcer, levels=c(0,1),
labels=c("Absent",
"Present"))

以上两段代码是给sex,ulcer加标签,很容易理解。

label(melanoma2\$sex) <- "Sex"
label(melanoma2\$age) <- "Age"
label(melanoma2\$ulcer) <- "Ulceration"
label(melanoma2\$thickness) <- "Thickness"
units(melanoma2\$age) <- "years"
units(melanoma2\$thickness) <- "mm"

以上代码是给变量修改变量名的首字母大小写,以及添加单位。

table1(~ sex + age + ulcer + thickness | status,

data=melanoma2, overall="Total")

现在生成的Table 1好看不少哦。但是还是需要进一步优化,例如我们对于定量变量,只要Mean(SD),不要中位数,等等。所以进一步优化。

labels <- list(
variables=list(sex="Sex",
age="Age (years)",
ulcer="Ulceration",
thickness="Thickness (mm)"),
groups=list("", "", "Death"))

levels(melanoma2\$status) <- c("Alive", "Melanoma", "Non-melanoma")

strata <- c(list(Total=melanoma2), split(melanoma2,

melanoma2\$status))

my.render.cont <- function(x) {

with(stats.apply.rounding(stats.default(x),

digits=2), c("",

"Mean (SD)"=sprintf("%s (&plusmn; %s)",

MEAN, SD)))

}
my.render.cat <- function(x) {

c("", sapply(stats.default(x), function(y)

with(y, sprintf("%d (%0.0f %%)", FREQ, PCT))))

}

table1(strata, labels, groupspan=c(1, 1, 2),

render.continuous=my.render.cont,

render.categorical=my.render.cat)

如何生成带P值的那种呢?我们下回分解。

持续获得临床科研知识

打破短期科研培训的片段性

实现科研的可持续发展

打开网易新闻 查看精彩图片