Rで生成したデータの前処理
Rでいろいろな次数についてモデルのAICを計算させ
for(p in 1:k){
for(q in 1:k){
:
aic <- infocriteria(fit)
answer<-cbind(p,q,r,aic)
print(answer)
}}
のように出力させているのですが、次数が高く最初に計算したものがコンソールから消えてしまいます。自動化させたいので変数を設定して格納させようとか考えているのですがどのような方法が考えられますでしょうか?
また、出力結果ですが、
p q r s
Akaike 1 1 1 1 4.07
Bayes 1 1 1 1 4.08
Shibata 1 1 1 1 4.08
Hannan-Quinn 1 1 1 1 4.08
p q r s
Akaike 1 1 1 2 4.08
Bayes 1 1 1 2 4.08
Shibata 1 1 1 2 4.07
Hannan-Quinn 1 1 1 2 4.08
:
のようにp q r sの部分が繰り返し出てくるのが邪魔なのですがどのように対処すればよろしいでしょうか。今流行り?のdplyrなどを使えばよいでしょうか?
(追記)
計算させてリストの中身を表示させようと
print(lst)
としたら
[[1]]
[[1]][[1]]
[[1]][[1]][[1]]
[[1]][[1]][[1]][[1]]
Akaike 1 1 1 1 4.107875
Bayes 1 1 1 1 4.111026
Shibata 1 1 1 1 4.107875
Hannan-Quinn 1 1 1 1 4.108906
[[1]][[1]][[1]][[2]]
Akaike 1 1 1 2 4.100747
Bayes 1 1 1 2 4.104686
Shibata 1 1 1 2 4.100747
Hannan-Quinn 1 1 1 2 4.102036
[[1]][[1]][[2]]
[[1]][[1]][[2]][[1]]
Akaike 1 1 2 1 4.103414
Bayes 1 1 2 1 4.106959
Shibata 1 1 2 1 4.103414
Hannan-Quinn 1 1 2 1 4.104574
[[1]][[1]][[2]][[2]]
Akaike 1 1 2 2 4.095238
Bayes 1 1 2 2 4.099571
Shibata 1 1 2 2 4.095238
Hannan-Quinn 1 1 2 2 4.096656
のようになりました。リストの中を見てcsvなどに出力し直すにはどうしたらよいでしょうか?
write.csv
でしょうか?
(再追記)
dplyrの方式ですと
f <- function(p,q,r,s) {
hogehoge
print(aic.sg)
}
params <- expand.grid(p = 1:1, q = 1:1, r = 1:3, s = 1:2)
params %>%
rowwise %>%
mutate(aic = f(p, q, r, s))
のように記述し、
Error: incompatible size (4), expecting 1 (the group size) or 1
のエラーが返ってきます。
functionの返り値が
Akaike 4.108074
Bayes 4.112013
Shibata 4.108074
Hannan-Quinn 4.109363
のように4行に渡っていることがimcompatibleと言われてしまう原因なのでしょうか?