当前位置: 首页 > article >正文

descrTable常用方法

descrTable 为 R 包 compareGroups 的重要函数,有关该函数以及 compareGroups 包的详细内容见:R包compareGroups详细用法

加载包和数据

library(compareGroups)

# 加载 REGICOR 数据(横断面,从不同年份纳入,每个变量有个label)
data(regicor)

# 保留部分变量
regicor <- regicor[,c('id','age','sex','smoker','height','weight')]

1. formula、data、show.all、digits、show.p.overall、show.p.trend、show.n、digits.p、all.last

  1. formula: 一个 “公式” 类的对象(或可以转换为该类的对象)。~ 的右侧必须以加减法方式纳入包含项,或为.纳入所有变量。左侧必须包含分组变量的名称,或者可以留空(在这种情况下,将为整个样本提供描述性统计数据,并且不进行测试)。

  2. data: 一个可选的数据框、列表或环境(或可通过 as.data.frame 强制转换为数据框的对象),包含模型中的变量。如果在 data 中找不到变量,则这些变量会从 environment(formula) 中获取。

  3. show.all: 逻辑值,指示是否显示 ‘[ALL]’ 列(未按组分层的所有数据)。如果定义了分组变量,则默认值为 FALSE;如果没有组,则为 FALSE。

  4. digits: 一个整数向量,其组件数量与变量相同。设置每个变量的保留小数位数。如果其长度为 1,则对所有变量进行设置。每个组件指定要显示的有效小数位数。或者是一个命名向量,指定 ‘digits’ 应用于哪些变量(一个保留名称是 ‘.else’,定义其余变量的 ‘digits’);如果没有定义 ‘.else’ 变量,则对其余变量应用默认值。默认值为 NA,表示使用"适当"的小数位数(详细信息请参见说明文档)。

  5. show.p.overall: 逻辑值,指示是否显示整体组显著性(‘p.overall’ 列)的 p 值。默认值为 TRUE。

  6. show.p.trend: 逻辑值,指示是否显示 p-trend。如果组少于 3,则始终为 FALSE。如果缺少此参数且组数超过 2 且分组变量为有序因子,则显示 p-trend。默认情况下,p-trend 不显示;当组数超过 2 且分组变量为有序因子类时显示。

  7. show.n: 逻辑值,指示是否在 ‘descr’ 表中显示每个变量分析的个体数量。默认值为 FALSE,当没有组时为 TRUE。

  8. digits.p: 整数,指示所有 p 值显示的小数位数。默认值为 3。

  9. all.last: 逻辑值。整个样本的描述性统计放在按组描述性统计之后。默认值为 FALSE,表示整体队列的描述性统计放在第一位。

descrTable( smoker ~ . -id, 
            data = regicor, 
            show.all = TRUE, 
            digits = c(2,2,3,4),  # 为不同变量设置保留位数
            show.p.trend = TRUE,
            show.p.overall = TRUE,
            show.n = TRUE,
            digits.p = 4
            )

在这里插入图片描述

descrTable( smoker ~ . -id, 
            data = regicor, 
            show.all = TRUE, 
            all.last = TRUE  # 最后一列显示 ALL
            )

在这里插入图片描述

2. subset、select

  1. selec: 一个包含与列变量相同数量组件的列表。如果列表长度为 1,则它会为所有变量重复。selec 的每个组件是一个表达式,该表达式将被评估以选择每个变量分析的个体。否则,将应用一个指定了变量的命名列表。.else 是一个保留名称,用于定义其他变量的选择。如果没有定义 .else 变量,则对其他变量应用默认值。默认值为 NA,即分析所有个体(不进行子集化)
descrTable( smoker ~ . - id,
            show.all = TRUE,
            show.n = TRUE,
            data = regicor,
            selec = list(sex = sex == "Male",   # 只分析男性
                         height = weight >70)   # 只分析体重大于 70 人的身高
            )
# 可以看到 age、weight 的 N 还是不变,为 2233,2209
# sex 只分析了男性,身高只分析体重大于 70 人的

在这里插入图片描述

  1. subset: 可选的向量,指定用于计算过程的个体子集。它会应用于所有变量。subsetselec 在每个变量中以 & 的形式添加。
descrTable( smoker ~ . - id, 
            show.all = TRUE,
            show.n = TRUE,
            data = regicor,
            subset = (sex == "Male" & weight > 70))   # 只分析同时满足的个体的,N只剩837

在这里插入图片描述

3. na.action

na.action: 一个函数,指示当数据包含 NA 时应该发生什么。默认值为 NULL,相当于 na.pass,即不采取任何行动。na.exclude 可以在希望移除所有在任何变量中有 NA 的个体时很有用。

descrTable( smoker ~ . - id, 
            show.all = TRUE,
            show.n = TRUE,
            data = regicor,
            na.action = na.exclude)

在这里插入图片描述

4. method

method: 整数向量,包含与变量数量相同的组件。仅适用于连续变量(对于因子变量则被忽略)。默认值为1,可能的值为:
1- 强制分析为 “正态分布”;
2- 强制分析为 “连续非正态”;
3- 强制分析为 “分类”;
4- NA,进行 Shapiro-Wilks 正态性检验以决定正态或非正态。

descrTable( smoker ~ . - id, 
            show.all = TRUE,
            show.n = TRUE,
            data = regicor,
            method = c(height = 2, weight =2))

在这里插入图片描述

descrTable( smoker ~ . - id, 
            show.all = TRUE,
            show.n = TRUE,
            data = regicor,
            method = c(1,2,2,1))

在这里插入图片描述

5. hide

hide: 一个向量(或列表),包含与变量数量相同的整数或字符, 隐藏分类变量的第几类别。如果其长度为 1,则对所有变量进行回收。每个组件指定必须隐藏且不显示的类别(如果是字符,则为类别的文字名称;如果是整数,则为位置)。此参数仅适用于分类变量,对于连续变量将被忽略。如果为 NA,则显示所有类别。或者是一个命名向量(或命名列表),指定应用于哪些变量的 ‘hide’,其余变量应用默认值。默认值为 NA。

descrTable( smoker ~ . - id, 
            show.all = TRUE,
            show.n = TRUE,
            data = regicor,
            hide = 2)   # 隐藏第二类别

在这里插入图片描述

6. sd.type、q.type、extra.labels

  1. sd.type: 一个整数,指示标准偏差的显示方式:1 - mean(SD),2 - mean ± SD。

  2. q.type: 一个包含两个整数的向量。第一个组件指非正态变量显示的括号类型(1 - 方形,2 - 圆形),第二个组件指百分位数分隔符(1 - ‘;’,2 - ‘,’,3 - ‘-’)。默认值为 c(1, 1)。

  3. extra.labels: 字符向量,包含 4 个组件,对应于附加到正常、非正态、分类或生存变量标签的关键标签。默认值为 NA,不附加任何额外关键字。如果设置为 c(“”,“”,“”,“”),则附加"Mean (SD)"、“Median [25th; 75th]”、“N (%)” 和 “Incidence at time=timemax”(请参阅 compareGroups 函数中的 timemax 参数)。

descrTable( smoker ~ . - id, 
            show.all = TRUE,
            show.n = TRUE,
            data = regicor,
            sd.type = 2,    # 更改描述 sd 的方式
            q.type = c(2,2),     # 更改描述 quantile 的方式
            extra.labels = c("","","",""))

在这里插入图片描述

7. 修改变量的 label

修改变量的 label 以在表格中直接显示

attr(regicor$tcv,"label")<-"Cardiovascular"

8. 修改源代码,提升客制化能力

在R脚本中输入createTable(), 然后鼠标对着函数名,按下 ctrl和鼠标左键,可以看到这个函数的源代码。但可以发现源代码为只读模式,因为在安装R包时,R源代码就被编译为了二进制文件以提升代码运行速度。因此通常可以通过下载源代码并修改后重新编译安装或者新建同名函数覆盖

1、下载源代码修改后编译安装
# 下载 compareGroups 包的源代码
download.packages("compareGroups", destdir = ".", type = "source")

# 解压源代码
# tar -xzf compareGroups_x.x.x.tar.gz

# 修改源代码
# 找到原函数并修改

# 重新安装
# 进入解压后的包目录
setwd("compareGroups")

# 编译并安装修改后的包
system("R CMD build .")
install.packages("compareGroups_x.x.x.tar.gz", repos = NULL, type = "source")

github上createTable()函数在如图文件中
在这里插入图片描述

2、创建同名 function 覆盖源代码
# 获取 creaTable 函数的源代码
getAnywhere(createTable)
# 或
edit(compareGroups::createTable)

# 将函数源代码复制出来
createTable <- function(...) {
  # 这里是函数的原始源代码
  # 修改你需要更改的部分
}

9. 修改结果tab

修改源代码可以一劳永逸,但如果不会也可以用代码修改结果

tab$descr <- apply(tab$descr, c(1, 2), function(x) gsub("±", "+-", x))    
tab$descr <- apply(tab$descr, c(1, 2), function(x) gsub("\\[", "(", x))

http://www.kler.cn/news/313989.html

相关文章:

  • 利士策分享,自我和解:通往赚钱与内心富足的和谐之道
  • Leetcode—移除元素
  • 海外问卷调查:选择静态IP还是动态IP?
  • Python数据分析案例59——基于图神经网络的反欺诈交易检测(GCN,GAT,GIN)
  • Redis中Hash(哈希)类型的基本操作
  • 「已解决」KeyError: ‘getpwuid(): uid not found: 1004‘
  • 编写函数,对字符数组中的字母由大到小的字母顺序进行排序
  • Jira Cloud涨价5%-20%,钉钉项目Teambition成优选替代
  • 使用Microsoft Visual Studio Installer Projects 2022打包桌面程序
  • 【大数据】MapReduce的“内存增强版”——Spark
  • 基于对数变换的图像美白增强,Matlab实现
  • Docker 数据目录迁移:一篇详细的技术指南
  • 软件测试 BUG 篇
  • java初学者:一个经典又全新改造的游戏——打地鼠
  • 别用 npm config set registry 设置淘宝镜像了!!!
  • 2025年最新大数据毕业设计选题-基于Hive分析相关
  • 【超星word下载】使用脚本下载的超星 word 文件,显示 Word 发现无法读取的内容
  • 集成学习详细介绍
  • react hooks--useLayoutEffect
  • oracle 11g SYSAUX表空间清理
  • 微服务——网关登录校验(一)
  • ODrive电机驱动算法VScode环境配置笔记教程
  • Java | Leetcode Java题解之第412题Fizz Buzz
  • Apache doris手动部署时报错“Please disable swap memory before installation.“
  • Web 服务器介绍 | 通过 Tomcat 说明其作用
  • 华为摄像机/NVR主动注册协议接入SVMSP平台
  • pytorch入门(2)——TensorBoard的使用
  • Python利用PyInstaller封装EXE文件
  • 2024“华为杯”中国研究生数学建模竞赛(E题)深度剖析_数学建模完整过程+详细思路+代码全解析
  • Mysql实战