それを返す式は次のとおりです。
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 のベクトルであることは確かです。警告がどこから来ているかに関して。