查看原文
其他

ClinReport包,输出高质量的临床统计报告结果

Editor's Note

学习

The following article is from R语言统计与绘图 Author 段湘杰

今天在逛R包网站时,又看到一个有意思的R包——ClinReport。

看名字,这个包跟临床报告有关系。

查了下R包介绍,这个包是专门用于统计报告的R包。

ClinReport包可以根据常见的临床报告标准,以一种容易阅读和理解的格式将R中的统计输出结果,比如说表格和图形,导出到Word文档或者R markdown文档中。

并且这种输出格式适用于所有出版物,也可以在流行病学研究或临床试验范围内使用。

看到这里,就觉得这个包好强大!!

下面来学习下这个R包。


目 录

  • 1. 安装和加载R包

  • 2. 加载演示数据集

  • 3. 输出连续资料统计信息

    • 3.1 简单描述统计信息

    • 3.2 添加一个分组变量

    • 3.3 添加2个分组变量

    • 3.4 结果可视化

    • 3.5 自定义统计函数

  • 4. 输出分类资料统计信息

    • 4.1 输出简单统计信息

    • 4.2 添加一个分组变量

    • 4.3 添加2个分组变量

  • 5. 输出结果


1. 安装和加载R包

安装有两种方法,一种从CRAN安装;一种是从gitHub安装开发版本。

install.packages("ClinReport"# 安装包
library(ClinReport) # 加载包

# 从gitHub安装
# library(devtools) 
# install_github("jfrancoiscollin/ClinReport")

我是从gitHub安装的,CRAN安装失败了。

还需要安装和加载下officer包和flextable包用于表格输出到Word文档。

install.packages("officer"# 安装包
install.packages("flextable"# 安装包
library(officer)# 加载包
library(flextable)# 加载包

2. 加载演示数据集

首先加载下演示数据集,使用datafake数据集进行演示。

data(datafake) # 加载数据集

这个数据是R包自带的虚拟数据集,有396行观测对象和8个变量。

str(datafake) # 查看数据集结构

从上面的输出结果可以看出,y_numeric、y_poisson、baseline为连续变量,其余变量为因子。

3. 输出连续资料统计信息

下面来学习这个R包怎么使用。

在这个包里面,report.quanti()函数可以输出连续变量的描述统计信息。

3.1 简单描述统计信息

先来个简单的,比如说输出datafake数据集中y_numeric变量的统计信息。

report.quanti(data=datafake,
              y="y_numeric")

先指定数据集,然后将要输出的连续变量传递给y参数。

可以添加其他参数输出更复杂的结果。比如说修改变量标签,添加total列。

report.quanti(data=datafake,
              y="y_numeric",
              total=TRUE,
              y.label="修改后的结果标签显示")

上面连续变量计算的是算术平均值,还可以计算几何平均值。

report.quanti(data=datafake,
              y="y_numeric",
              geomean=TRUE# 计算几何均值

3.2 添加一个分组变量

上面的结果中,y参数只有一列,可以添加一个分组变量,输出更复杂的信息。比如说GROUP变量为三分类变量。

report.quanti(data = datafake,
              y="y_numeric",
              x1="GROUP")  # 指定分组变量

这里同样可以添加total列,直接看结果。

3.3 添加2个分组变量

在上面的演示中,添加了一个分组变量,而且显示为列的形式,还可以在结果信息中添加一个分组变量,显示为行的形式。比如说TIMEPOINT变量为5分类变量。

report.quanti(data=datafake,
              y="y_numeric",
              x1="GROUP",
              x2="TIMEPOINT")

这里同样可以添加total列,结果不显示了,自己运行下试试。

还可以在表头显示受试者的数目。

report.quanti(data=datafake,
              y="y_numeric",
              x1="GROUP",
              total=TRUE,
              subjid="SUBJID"# 显示受试者数目

3.4 结果可视化

除了表格显示结果,还可以使用图形来可视化结果,比如说可视化均值结果。

tab1 <- report.quanti(data=datafake,
                      y="y_numeric",
                      x1="GROUP",
                      x2="TIMEPOINT",
                      subjid="SUBJID")
tab1

gg <- plot(tab1,
           title="Mean response evolution as a function of time by treatment group",
           legend.label="Treatment groups",
           ylab="Y mean")
gg

3.5 自定义统计函数

除了上面这些输出信息外,还可以自定义统计函数,输出自己想要的结果。

mystat=function(x) quantile(x,0.99,na.rm=TRUE)
tab <- report.quanti(data=datafake,
                  y="y_numeric",
                  x1="GROUP",
                  x2="TIMEPOINT",
                  total=TRUE,subjid="SUBJID",
                  func.stat=mystat,
                  func.stat.name="99% quantile")
tab

mystat2=function(x) mean(x,na.rm=TRUE)/sd(x,na.rm=TRUE)
tab=report.quanti(data=datafake,
                  y="y_numeric",
                  x1="GROUP",
                  total=TRUE,
                  subjid="SUBJID",
                  func.stat=mystat2,
                  func.stat.name="Coefficient of variation")
tab

连续变量的结果输出就学到这里,更详细的可以自行查阅R包。

4. 输出分类资料统计信息

在这个包里面,report.quali()函数可以输出分类变量的描述统计信息。

4.1 输出简单统计信息

如下所示,直接将分类变量传递给y参数即可输出统计结果。

report.quali(data=datafake,
             y="y_logistic")

可以添加参数修改输出结果,比如说修改分别变量标签。

report.quali(data=datafake,
             y="y_logistic",
             y.label="Clinical cure",
             y.levels.label="Levels")

4.2 添加一个分组变量

上面的结果中,y参数只有一列,可以添加一个分组变量,输出更复杂的信息。比如说GROUP变量为三分类变量。

report.quali(data=datafake,
             y="y_logistic",
             x1="GROUP",
             y.levels.label="Clinical cure")

4.3 添加2个分组变量

在上面的演示中,添加了一个分组变量,而且显示为列的形式,还可以在结果信息中添加一个分组变量,显示为行的形式。比如说TIMEPOINT变量为5分类变量。

report.quali(data=datafake,y="y_logistic",
             x1="GROUP",
             x2="TIMEPOINT",
             y.levels.label="Clinical cure",
             x2.label="Days"
             at.row="Days")

在上面的结果,显示的百分比结果是列百分比,可以调整参数,显示行百分比结果。

report.quali(data=datafake,
             y="y_logistic",
             x1="GROUP",
             x2="TIMEPOINT",
             percent.col=FALSE,
             x2.label="Days",
             y.levels.label="Clinical cure")

同样可以添加参数subjid="SUBJID"显示受试者数目,并且调整输出结果数字位数为1位。

report.quali(data=datafake,y="y_logistic",x1="GROUP",
             x2="TIMEPOINT",at.row="TIMEPOINT",
             subjid="SUBJID",
             round=1# 设置小数位数位1位

分类变量的结果输出就学到这里,更详细的可以自行查阅R包。

5. 输出结果

在前面讲了,这个包可以根据常见的临床报告标准,以一种容易阅读和理解的格式将R中的统计输出结果,比如说表格和图形,导出到Word文档或者R markdown文档中。

下面来学习下怎么导出表格到Word里面。

# 创建一个空的word文档
doc <- read_docx() 

# 将表格添加到word里面
doc <- report.doc(tab1,
                  title="演示示例表格",
                  doc = doc) 

# 设置输出路径和输出表格文件的名称
file <- paste("C://Rdata//输出表格"".docx",sep=""

# 输出表格
print(doc, target =file)
结果未显示完全

显示的样式如上图所示,显示结果样式还是可以的。

参考资料

  1. ClinReport包帮助资料

既往专辑


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存