我正在使用生存包在 R 中进行分层 cox 回归:
cox <- coxph(response~strata(x), data=data)
这很好用,但是在使用采样包时,生存包中的分层功能被隐藏了,不能直接使用。
但是,使用显式命名空间调用它survival::strata
不会创建分层分析:
library(survival)
# sample data
mort28day <- c(1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1)
daysurv <- c(4,29,24,29,29,29,29,19,29,29,29,3,9,29,15,29,29,11,29,5,13,20,22,29,16,21,9,29,29,15)
levo <- c(0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0)
acbi30 <- data.frame(mort28day, daysurv, levo)
# create survival object
test.Surv <- Surv(acbi30$daysurv, acbi30$mort28day)
test.surv_fit_1 <- survfit(coxph(test.Surv~strata(levo), data=acbi30))
test.surv_fit_2 <- survfit(coxph(test.Surv~survival::strata(levo), data=acbi30))
所以,
test.surv_fit_1$strata
# levo=0 levo=1
# 12 3
test.surv_fit_2$strata
# NULL
为什么会这样?当它被隐藏时我如何访问这个功能sampling::strata
(除了分离采样包;-)
我正在使用 R 版本 2.15.2
谢谢, DeltaKappa
更新:
作为将生存::strata 与我所做的采样包一起使用的解决方法
library(survival)
library(sampling, pos="package:base")
它在基本包的正上方加载具有低搜索优先级的采样包。那我可以做
coxph(test.Surv~strata(levo), data=acbi30)
在显式调用时sampling::strata
。