Dfmacox 和 SmoothHr:运行 代码中的错误

Dfmacox and SmoothHr: errors in running codes

我正在尝试 运行 从我的数据集中进行统计分析的代码(连续预测变量的风险比曲线的非参数估计)。这是我的数据集:

db2 <-structure(list(IBM = c(2, 3, 2, 5, 0, 0, 3, 0, 0, 4, 
                                0, 2, 0, 5, 2, 0, 2, 5, 4, 3, 3, 0, 2, 0, 0, 5, 0, 2, 0, 4, 3, 
                                4, 4, 2, 2, 3, 0, 2, 4, 0, 2, 0, 3, 5, 3, 0, 3, 1, 0, 2, 3, 0, 
                                2, 3, 2, 0, 3, 2, 2, 3, 3, 3, 2, 1, 2, 2, 4, 2, 2, 2, 4, 0, 0, 
                                0, 2, 2, 3, 2, 2, 3, 3, 0, 2, 0, 0, 5, 3, 2, 2, 2, 0, 3, 3, 2, 
                                2, 2, 2, 0, 2), 
                     OS60m = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
                     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
                     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
                     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
                     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
                     1, 1, 1), 
                     OS60m_m = c(32, 22, 58, 44, 34, 26, 12, 1, 4, 7, 23, 
                     9, 2, 16, 3, 50, 17, 36, 19, 44, 1, 0, 4, 35, 45, 25, 57, 8, 
                     11, 1, 13, 30, 38, 59, 21, 32, 35, 21, 10, 57, 0, 39, 0, 30, 
                     33, 17, 55, 51, 27, 13, 15, 8, 35, 6, 2, 27, 55, 37, 12, 18, 
                     13, 47, 20, 43, 29, 19, 25, 34, 20, 13, 17, 16, 37, 45, 57, 25, 
                     20, 45, 29, 28, 22, 33, 2, 45, 16, 38, 35, 11, 58, 40, 6, 4, 
                     47, 27, 45, 39, 34, 2, 56), 
                     LnNTproBNP = c(3.58, 3.78, 3.99, 
                     4.22, 4.32, 4.52, 4.54, 4.61, 4.69, 4.75, 4.8, 4.88, 4.91, 4.93, 
                     4.94, 4.96, 4.98, 4.98, 5.06, 5.09, 5.19, 5.23, 5.23, 5.26, 5.29, 
                     5.29, 5.3, 5.32, 5.33, 5.41, 5.42, 5.42, 5.45, 5.47, 5.48, 5.49, 
                     5.5, 5.52, 5.52, 5.52, 5.53, 5.55, 5.59, 5.6, 5.61, 5.62, 5.64, 
                     5.65, 5.65, 5.67, 5.7, 5.71, 5.71, 5.71, 5.73, 5.74, 5.75, 5.78, 
                     5.79, 5.79, 5.8, 5.81, 5.81, 5.82, 5.83, 5.84, 5.84, 5.84, 5.85, 
                     5.86, 5.86, 5.86, 5.91, 5.91, 5.92, 5.94, 5.94, 5.95, 5.96, 5.96, 
                     5.97, 5.98, 5.99, 6, 6.02, 6.02, 6.03, 6.06, 6.06, 6.08, 6.08, 
                     6.09, 6.1, 6.11, 6.11, 6.12, 6.13, 6.15, 6.15)), 
                row.names = c(NA,-99L), class = c("tbl_df", "tbl", "data.frame"))

这是我正在尝试的代码 运行:

a <- db2$LnNTproBNP
b <- db2$OS60m
df1 <- dfmacox(data = db2, time = db2$OS60m_m, status = 'b', nl.predictors = c('a'), 
               smoother = 'ns', method = 'AIC')
df1$df
hr1 <- smoothHR(time = 'db2$OS60m_m', status = 'b', 
                formula = ~ns (a, df = df1$df), data = db2)

我收到以下错误:

1) variable defined in argument 'time' is not in the dataset 'data'

当我运行第一行代码时;

2) time must be of class numeric or integer

当我运行第二行和第三行时

编辑

我已经为你的问题添加了数据。由于您从 Excel 导入数据,因此您需要将其更改为 data.frame,因为 smoothHR 可能无法很好地使用默认值,包括 tbl_dftbl

db2<-data.frame(db2)
db2$a <- db2$LnNTproBNP
db2$b <- db2$OS60m
df1 <- dfmacox(time = "OS60m_m", status = "b", nl.predictors = c('a'), 
               smoother = 'ns', method = 'AIC', data=db2)
df1
$df
[1] 2

$AIC
[1] 720.0194

$AICc
[1] 722.272

$BIC
[1] 725.2096

$myfit
Call:
coxph(formula = covar, data = data, x = TRUE)

                  coef exp(coef) se(coef)      z     p
ns(a, df = 2)1  0.8969    2.4519   1.0972  0.817 0.414
ns(a, df = 2)2 -0.4574    0.6329   0.3684 -1.242 0.214

Likelihood ratio test=2.25  on 2 df, p=0.3248
n= 99, number of events= 99 

$method
[1] "AIC"

$nl.predictors
[1] "a"