【问题标题】:R package“JM": missing value where TRUE/FALSE neededR 包“JM”:需要 TRUE/FALSE 的缺失值
【发布时间】:2018-10-26 04:42:03
【问题描述】:

我收到以下错误消息:

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")

这是什么意思,我该如何解决。谢谢

【问题讨论】:

  • 并且数据中没有两个变量t1和t2。

标签: r


【解决方案1】:

我遇到了同样的问题,发现排除某些 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 的源代码,它们没有出现在任何函数中。

如果您想包含这些 ID,在贝叶斯框架中可能比常客更有可能,因为使用贝叶斯方法处理丢失的数据更容易。我还没有看过它,但 R 中的 JMBayes 包适合贝叶斯联合模型,并且可能允许您包含这些个体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2016-11-06
    • 2015-06-28
    • 2019-03-07
    • 2018-07-12
    • 2014-06-06
    • 1970-01-01
    相关资源
    最近更新 更多