裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Warning を無視するのもどうかなあ?

2012年03月25日 | ブログラミング

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 が出たら,それでも正しい結果かも知れないが,不安に思うだろうなあ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村