今回は気温や湿度、大気中の汚染物質が我々の健康に及ぼす影響について分析する際に用いたいLag effectについてのベクトル生成について記述する。
Aというベクトル(1から100までの長さ100のベクトル)に関して過去15日の指標を蓄積したベクトルを作成するとする。
lag.sum <- function(a,L0,L1) ## L0 is the smallest lag, L1 the largest { n<-length(a) b<-rep(0,n-L1) for (i in 0:(L1-L0)) b <- b + a[(i+1):(n-L1+i)] b }
A <- 0:100 lag.sum(A, 0, 15)
出力はこうなる
[1] 136 152 168 184 200 216 232 248 264 280 296 312 328 344 360 [16] 376 392 408 424 440 456 472 488 504 520 536 552 568 584 600 [31] 616 632 648 664 680 696 712 728 744 760 776 792 808 824 840 [46] 856 872 888 904 920 936 952 968 984 1000 1016 1032 1048 1064 1080 [61] 1096 1112 1128 1144 1160 1176 1192 1208 1224 1240 1256 1272 1288 1304 1320 [76] 1336 1352 1368 1384 1400 1416 1432 1448 1464 1480
この値に対して、単純な平均を求める
round(lag.sum(vector, 0, 15)/15, 3)
[1] 9.067 10.133 11.200 12.267 13.333 14.400 15.467 16.533 17.600 18.667 [11] 19.733 20.800 21.867 22.933 24.000 25.067 26.133 27.200 28.267 29.333 [21] 30.400 31.467 32.533 33.600 34.667 35.733 36.800 37.867 38.933 40.000 [31] 41.067 42.133 43.200 44.267 45.333 46.400 47.467 48.533 49.600 50.667 [41] 51.733 52.800 53.867 54.933 56.000 57.067 58.133 59.200 60.267 61.333 [51] 62.400 63.467 64.533 65.600 66.667 67.733 68.800 69.867 70.933 72.000 [61] 73.067 74.133 75.200 76.267 77.333 78.400 79.467 80.533 81.600 82.667 [71] 83.733 84.800 85.867 86.933 88.000 89.067 90.133 91.200 92.267 93.333 [81] 94.400 95.467 96.533 97.600 98.667
前回の更新ではミスがあったようで大変失礼しました。
20160330
RF