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 に答える