0

返回它的方程是这样的:

Total_Eff[PatientDI] = (Total_Eff[PatientDI] + (QALY_PopNorm - QALY_Infert_Decr)*0.5*(0.95^CLOCK[PatientDI]))

在工作区中,有问题的对象具有以下值:

> Total_Eff
[1] 12.03512  0.00000  0.00000  0.00000
> QALY_PopNorm
[1] 0.9363524
> QALY_Infert_Decr
[1] 0.05609429
> CLOCK
[1] 20.716  0.000  0.000  0.000
> PatientDI
[1] 1

当我手动输入方程式时(即在我的代码完成运行后在工作区中),我得到:

> (Total_Eff[PatientDI] + (QALY_PopNorm - QALY_Infert_Decr)*0.5*(0.95^CLOCK[PatientDI]))
[1] 12.18721

没有警告。

问题是我收到了太多这种性质的警告,它们淹没了所有其他可能很重要的警告,当我使用“warnings()”时,我看到的只是这个等式一遍又一遍地重复的错误消息。

谁能看出问题出在哪里?我意识到如果没有整个代码(大约 2000 行长),就不可能始终准确地知道发生了什么,但我确信 QALY_PopNorm 和 QALY_Infert_Decr 总是长度为 1 的向量,所以我不知道关于警告的来源。

4

1 回答 1

0

通过将警告转换为错误并输入调试器,您应该能够准确地看到问题所在:

options(warn=2, error=recover)

您将能够在警告时检查相关变量的值。

于 2013-05-31T22:15:18.563 回答