как я могу устранить ошибку "undefined columns selected" для ggforest - PullRequest
0 голосов
/ 12 июля 2020

Как исправить ошибку с выбранными неопределенными столбцами? Я загрузил Survminer и пакеты для выживания.

   cox4<- coxph(formula= Surv(LOS,Mortality)~ BNPcat+HF_dx+Age+Sex+BMI+
           Admit_QTc+FI02_comb+Admit_Lactate,data=DF)
    ggforest(cox4)
> cox4
Call:
coxph(formula = Surv(LOS, Mortality) ~ BNPcat + HF_dx + Age + 
    Sex + BMI + Admit_QTc + FI02_comb + Admit_Lactate, data = DF)

                    coef  exp(coef)   se(coef)      z      p
BNPcat1        0.9030311  2.4670696  0.9888592  0.913 0.3611
HF_dx1         0.8819918  2.4157065  0.8519562  1.035 0.3005
Age            0.0479344  1.0491018  0.0284893  1.683 0.0925
Sex1           0.3792915  1.4612490  0.7020620  0.540 0.5890
BMI            0.0250854  1.0254027  0.0319454  0.785 0.4323
Admit_QTc     -0.0006391  0.9993611  0.0060206 -0.106 0.9155
FI02_comb      0.0204957  1.0207072  0.0101321  2.023 0.0431
Admit_Lactate  0.2433651  1.2755342  0.1112036  2.188 0.0286

Likelihood ratio test=21.33  on 8 df, p=0.006311
n= 71, number of events= 13 
   (62 observations deleted due to missingness)
> ggforest(cox4)
Error in `[.data.frame`(cbind(allTermsDF, coef[inds, ]), , c("var", "level",  : 
  undefined columns selected
In addition: Warning message:
In .get_data(model, data = data) :
  The `data` argument is not provided. Data will be extracted from model fit.

Ответы [ 3 ]

0 голосов
/ 21 июля 2020

Я столкнулся с той же проблемой. И я решил это, заменив R-пакет "broom" на предыдущую версию.

0 голосов
/ 05 августа 2020

У меня возникла та же проблема при использовании as.factor() в coxph -функции:

cox0x<-coxph(formula=Surv(SurvTime.full,state.full=="1") ~  as.factor(PreSur), data=data1)
ggforest(cox0x, data=data1)

Error in `[.data.frame`(x, i, j) : undefined columns selected

Следует отметить, что моя переменная PreSur уже была фактором при использовании в coxph. Однако при избегании as.factor() в моем случае проблема была решена:

cox0x<-coxph(formula=Surv(SurvTime.full,state.full=="1") ~  PreSur, data=data1)
ggforest(cox0x, data=data1)

введите описание изображения здесь

Однако я знаю, что это не решение к проблеме AB C, который не использует as.factor() в коде. Хотя это может быть полезно другим ....

0 голосов
/ 12 июля 2020

Трудно подтвердить источник ошибки, не просматривая ни данные, ни сводку модели, но если мы сделаем это:

library(survival)
library(survminer)

data <- data.frame(LOS = rlnorm(1000, rep(0:1, each = 500)),
                   mortality = rbinom(100, 1, rep(c(0.5, 0.05), each = 500)),
                   condition = rep(c("Sick", "Well"), each = 500))

cox4 <- coxph(Surv(LOS, mortality) ~ condition, data = data)

Мы получим следующую ошибку при попытке построить график:

ggforest(cox4)
#> Warning in .get_data(model, data = data): The `data` argument is not provided.
#> Data will be extracted from model fit.
#> Error in .get_data(model, data = data): The `data` argument should be provided
#> either to ggsurvfit or survfit.

Это странная ошибка. Кажется, это происходит из-за того, что ваш фрейм данных называется data, который используется как имя параметра в ggforest. Мы можем убрать ошибку go, если мы специально передадим data = data в ggforest:

ggforest(cox4, data = data)

or change the name of your data frame:

df <- data

cox4 <- coxph(Surv(LOS, mortality) ~ condition, data = df)

ggforest(cox4)
#> Warning in .get_data(model, data = data): The `data` argument is not provided.
#> Data will be extracted from model fit.

Created on 2020-07-12 by the REPEX package (v0.3.0)

...