You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在tableone包的CreateTableOne()中使用rms::rcs()协变量转换?

问题:如何在CreateTableOne中应用限制性立方样条(rcs)转换?

我在进行IPTW分析时,使用rms::rcs()实现限制性立方样条,希望在tableone包的CreateTableOne()函数中对变量应用rcs转换,尝试执行以下代码:

Unadjusted <- CreateTableOne( data = DB1, vars = c(COVARIATES, 'rcs(ONSET,4)'), strata = 'ASM_USED')

但收到警告提示:

Warning message: In ModuleReturnVarsExist(vars, data) : The data frame does not have: rcs(ONSET,4) Dropped

因找不到对应列被丢弃,请问是否有方法在CreateTableOne()中实现该rcs()转换?


解决方案

CreateTableOne()的vars参数仅接受数据框中已存在的列名,无法直接在参数中执行函数转换,因此需要先生成rcs转换后的变量,再传入函数:

方法一:直接在原数据框中添加转换后的变量

library(rms)
library(tableone)

# 生成4个节点的限制性立方样条变量,添加到原数据框
DB1$ONSET_rcs <- rcs(DB1$ONSET, 4)

# 调用CreateTableOne,使用新生成的列名
Unadjusted <- CreateTableOne(data = DB1, vars = c(COVARIATES, "ONSET_rcs"), strata = "ASM_USED")

方法二:创建临时数据框(不修改原数据)

如果不想改动原始数据,可以构建包含转换后变量的临时数据框:

# 合并原数据与rcs转换后的变量,生成临时数据框
temp_data <- cbind(DB1, ONSET_rcs = rcs(DB1$ONSET, 4))

# 基于临时数据框生成表格
Unadjusted <- CreateTableOne(data = temp_data, vars = c(COVARIATES, "ONSET_rcs"), strata = "ASM_USED")

内容的提问来源于stack exchange,提问作者cccnrc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:40:10