我收到以下错误消息:
Error in if (t1 || t2) { : missing value where TRUE/FALSE needed
当我输入以下内容时:
library(JM)
lmefit=lme(ADAS11+apoe4+AGEING,random = ~AGEING|RID,data = AD,na.action=na.exclude)
coxfit=coxph(Surv(AGEEND,DXEND)~apoe4bl+,data = AD.RID,x=TRUE)
jointfit=jointModel(lmefit,coxfit,timeVar = "AGEING")
这是什么意思,我该如何解决。谢谢
答案 0 :(得分:0)
我遇到了同样的问题,发现排除一些 ID 可以避免错误消息。
我的数据集中的一些 ID 仅包含纵向变量的一个数据点。当我从数据中删除这些 ID 时,仅包括至少有 2 个条目的 ID,模型运行时没有出现错误。我怀疑这是导致问题的原因,因为模型可能不知道如何估计这些变量的随机效应梯度。
删除它们的一种方法:
AD <- AD[which(is.element(AD$RID,
AD$RID[duplicated(AD$RID)])),]
请注意,您必须将它们从 AD 和 AD.RID 中删除,因为这些数据集需要对应,其中 AD 和 AD.RID 均按 ID 排序并包含相同的个体。
至于变量 t1 和 t2 是什么,以及究竟是什么导致了错误,我不确定 - 我检查了 JointModel、coxph 和 lme 的源代码,它们没有出现在任何函数中。< /p>
如果您想包含这些 ID,在贝叶斯框架中可能比频率论更有可能,因为使用贝叶斯方法处理丢失的数据更容易。我还没有看过它,但 R 中的 JMBayes 包适合贝叶斯联合模型,并且可能允许您包含这些个体。