0

モデルをループで実行するコードがあります。ループの反復ごとに、わずかに異なるモデルが実行され、結果が変数に格納されます。これらのオブジェクトを保存して、ループが終了した後にアクセスできるようにする良い方法は何ですか? 私は次のようなことを考えました:

fit.list <- list(n)
for (i in 1:n) {
    fit <- glm(......)
    fit.list[i] <- fit
}

しかし、各モデルの結果にアクセスしたいのですが、たとえばsummary(fit.list[4])or でもplot(fit.list[15])うまくいかないようです。

4

2 に答える 2

2

試す

plot(fit.list[[15]])

単一の[関数は、要求されたコンポーネントのリストが長さ1の場合でも、そのリストを抽出します。

double関数は、指定された単一[[のコンポーネントを抽出して返しますが、リストには返しません。つまり、コンポーネントを含むリストではなく、コンポーネント自体を取得します。

これがイラストです:

> mylist <- list(a = 1, b = "A", c = data.frame(X = 1:5, Y = 6:10))
> str(mylist)
List of 3
 $ a: num 1
 $ b: chr "A"
 $ c:'data.frame':  5 obs. of  2 variables:
  ..$ X: int [1:5] 1 2 3 4 5
  ..$ Y: int [1:5] 6 7 8 9 10
> str(mylist["c"])
List of 1
 $ c:'data.frame':  5 obs. of  2 variables:
  ..$ X: int [1:5] 1 2 3 4 5
  ..$ Y: int [1:5] 6 7 8 9 10
> str(mylist[["c"]])
'data.frame':   5 obs. of  2 variables:
 $ X: int  1 2 3 4 5
 $ Y: int  6 7 8 9 10

最後の2つのコマンド出力の違いに注意してください。str(mylist["c"])「 」と言いList of 1ながら「」と言います。str(mylist[["c"]])'data.frame':

あなたplot(fit.list[15])は、リストのその要素に含まれているモデルではなく、リストオブジェクトをプロットするようにRに要求していました。

于 2012-06-17T10:36:25.527 に答える
0

また、多分試してみてください

fit.list <- list()
for (i in 1:5) {
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
print(d.AD <- data.frame(treatment, outcome, counts))
glm.D93 <- glm(counts ~ outcome + treatment, family=poisson())
fit.list[[i]] <-glm.D93
}

あなたが持っているように、fit.list[[i]]むしろその後に注意してくださいfit.list[i]

于 2012-06-17T10:42:58.687 に答える