質問: 6つの既存のリストを `list[1],list[2],list[3],list[4],list[5],list[6]` というような形で `for` 文で代入したいのですが、どうすればいいかわかりません。 ベクトルで `for` 文を用いて、`f[1],f[2],f[3],f[4],f[5],f[6]` に対して代入するときは、 以下のようになるのはわかるのですが、リストを同じようにするとうまく行きません。 どなたかおしえて頂けますでしょうか。 ``` f<-NULL for(i in 1:6){ f[i]<- i } ```
回答: (質問の趣旨の確認はコメントで書くルールらしいですが, 信用度が足りず書き込めないため回答に含めます) > > 6つの既存のリストを `list[1],list[2],list[3],list[4],list[5],list[6]` というような形で > > > > > リストを同じようにする > > > というのが具体的にどういう操作なのか不明瞭なので確認ですが, `list` と言う名前の新しいリストの中にさらに6つのリスト, 例えば `li1, ... li6` を入れたいということですか? この例のように規則のある名前が付いているのなら, `get()` を使うことでできます. ``` li1 <- list(name = "リスト1です") li2 <- list(name = "リスト2です") li3 <- list(name = "リスト3です") li4 <- list(name = "リスト4です") li5 <- list(name = "リスト5です") li6 <- list(name = "リスト6です") list <- list() for(i in 1:6){ list[[i]] <- get(paste0("li", i)) } class(list) # リスト型になっていることを確認 str(list) # 要素もリストになっていることを確認 ```