如何解决model.frame.default中的错误:变量长度不同,R预测函数
这不是一个新问题,我在其他地方看到了几种建议的解决方案,并尝试了它们,但均无效果。
如何解决此错误?我正在使用R version 3.5.3 (2019-03-11)
Error in model.frame.default(data = ov_val,formula = Surv(time = ov_dev$futime,: variable lengths differ (found for 'rx')
以下是可重现的示例:
library(survival)
library(survminer)
library(dplyr)
# Create fake development dataset
ov_dev <- ovarian[1:13,]
# Create fake validation dataset
ov_val <- ovarian[13:26,]
# Run cox model
fit.coxph <- coxph(Surv(time = ov_dev$futime,event = ov_dev$fustat) ~ rx + resid.ds + age + ecog.ps,data = ov_dev)
summary(fit.coxph)
# Where error occurs
p <- log(predict(fit.coxph,newdata = ov_val,type = "expected"))
解决方法
我认为这是因为您在模型规范中使用了waterfall = await harFromMessages(events);
和ov_dev$futime
而不是仅仅使用了ov_dev$fustat
和futime
。这意味着当您进行预测时,模型将fustat
数据用作因变量,而将ov_dev
用作自变量,它们的长度不同(13对14)。只需删除数据帧前缀并信任ov_val
参数:
data
由reprex package(v0.3.0)于2020-08-19创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。