R-survfitJM错误“参数必须具有相同的长度”

时间:2018-12-04 16:10:36

标签: r

我正在尝试使用JMBayes软件包,并且在创建模型后无法使用它。更具体地说,我尝试在一组测试数据上使用函数“ survfitJM”,并且遇到以下错误(不幸的是,我不得不从屏幕截图中重新输入该错误,对于任何错别字都感到抱歉):

survfitJM(jointFit,newdata = test_data,idVar = "subject_id")

Error in tapply(row.names(newdata), id, tail, n=1L): arguments must have the same length
Traceback:

1. survfitJm(jointFit, newdata = test_data, idVar = "subject_id")
2. survfitJM.JMbayes(jointFit, newdata = test_data, idVar = "subject_id")
3. newdata[tapply(row.names(newdata), id, tail, n = 1L), ]
4. `[.data.frame`(newdata, tapply(row.names(newdata), id, tail, n = 1L), )
5. tapply(row.names(newdata), id, tail, n = 1L)
6. stop("arguments must have same length")

我钻入了source code,并试图手动应用这些步骤来重新创建错误,但是没有成功。从源代码看,我看来survfitJM正在调用函数survfitJM.jointModel,而我的错误发生在此文件的第48行。鉴于此,在我看来,运行以下命令应该可以让我重新创建问题并诊断原因(来自源代码的第32-48行):

id <- as.numeric(unclass(test_data[['subject_id']]))
id <- id. <- match(id,unique(id))
id <- id[rep(TRUE,nrow(test_data))]
test_data[tapply(row.names(test_data),id,tail,n=1L),]

但是,我能够成功运行这些命令而没有错误。

现在,我不确定我可能做错了什么并导致此错误。任何帮助或建议,在这里都将不胜感激。

0 个答案:

没有答案