2

我正在尝试使用 survminer 通过 ggadjustedcurves() 创建调整后的生存曲线。我的代码如下:

adjustedcurve <- coxph(Surv(time_DeathTxCensor, deadORtx==1) ~ strata(natADI_quart) + sex + FVCpctPre + DLCOpctPre + smokeHx + age_dx, data=ADI, id=ID)
ggadjustedcurves(adjustedcurve,
                 variable="natADI_quart",
                 method="conditional",
                 data=ADI)

我收到错误消息:

if (xi > xj) 1L else -1L 中的错误:需要 TRUE/FALSE 的缺失值

这也是我的回溯:

16. .gt(structure(c(1L, 3L, 2L, 4L), .Label = c("1", "2", "3", "4" ), class = "factor"), 1L, 2L)
15. rank(x, ties.method = "min", na.last = "keep")
14. as.vector(rank(x, ties.method = "min", na.last = "keep"))
13. xtfrm.default(x)
12. xtfrm(x)
11. as.vector(xtfrm(x))
10. FUN(X[[i]], ...)
9. lapply(z, function(x) if (is.object(x)) as.vector(xtfrm(x)) else x)
8. order(x, na.last = na.last, decreasing = decreasing)
7. `[.tbl_df`(x, order(x, na.last = na.last, decreasing = decreasing))
6. x[order(x, na.last = na.last, decreasing = decreasing)]
5. sort.default(unique(data[, variable]))
4. sort(unique(data[, variable]))
3. ggadjustedcurves.conditional(data, fit, variable, size = size)
2. surv_adjustedcurves(fit = fit, variable = variable, data = data, reference = reference, method = method, size = size, ...)
1. ggadjustedcurves(adjustedcurve, data = ADI)

我不知道这意味着什么或如何解决它。非常感谢任何帮助:)

4

1 回答 1

1

问题出现在 survminer 调整曲线函数中,它试图通过使用变量名称从数据集中索引来对因子变量的唯一级别进行排序。

这会引发错误。

如果您愿意编辑包中的函数,可以从这里检索它们:https ://github.com/kassambara/survminer/blob/master/R/ggadjustedcurves.R

..并通过替换以下三个事件来修复错误:

lev <- sort(unique(data[,variable]))

lev <- sort(unique(pull(data, variable)))

希望这可以帮助。

于 2020-12-02T12:15:09.317 回答