「2012-03-23 時系列データを作ってみる」は,Warning がたくさん出る
無視して良い Warning と無視してはマズイ Warning があるのでは?
Warning が出るのは for ループ内の if 文の条件判定。
i >= 3 のときに問題が起こる
i = 3 のとき
> max(Vintervention[max(1,i-Vperiod-1):i-1]-Vt[max(1,i-Vperiod):i])>0
[1] FALSE
警告メッセージ:
In Vintervention[max(1, i - Vperiod - 1):i - 1] - Vt[max(1, i - :
長いオブジェクトの長さが短いオブジェクトの長さの倍数になっていません
以下の長さが違うのが原因。長さが違うベクトルの差を取ろうとするのが原因。
> Vintervention[max(1,i-Vperiod-1):i-1]
[1] 0.2691888 0.0000000
> Vt[max(1,i-Vperiod):i]
[1] 43.65656 31.04691 40.19488
添え字が違う。
> max(1,i-Vperiod-1):i-1
[1] 0 1 2
> max(1,i-Vperiod):i
[1] 1 2 3
R の添え字は(C などと違い)1 からはじまるので,
> max(1,i-Vperiod-1):i-1
[1] 0 1 2
の有効な添え字は「2 つしかない」
プログラム作者は,それを認識しているのかなあ。
少なくとも,第三者がやってみたときに Warning が出たら,それでも正しい結果かも知れないが,不安に思うだろうなあ。
※コメント投稿者のブログIDはブログ作成者のみに通知されます