1. ホーム
  2. r

[解決済み] Rでリストに要素を追加する方法(ループ) [duplicate]

2022-06-07 19:54:11

質問

ループでリストに要素を追加したい(正確な数はわからない)

こんな感じで

l <- list();
while(...)
   l <- new_element(...);

最後に l[1] は私の最初の要素になります。 l[2] が私の2番目の要素というようになります。

どうすればいいかわかりますか?

どのように解決するのか?

リストへの追加は c を使ってリストに追加してはいけません。基本的に c(l, new_element) を実行すると、リストの内容全体がコピーされます。その代わりに、リストの要素にインデックスでアクセスする必要があります。リストの長さがわかっている場合は、リストをこのサイズに初期化するために l <- vector("list", N) . そうでない場合は、長さを大きな数字に等しくなるように初期化し(例えば反復回数の上限がある場合)、ループが終了した後に非NULLの要素を選択するだけでよいでしょう。とにかく、基本的なポイントは、リスト要素を追跡するためのインデックスを持ち、それを使用して追加することです。

i <- 1
while(...) {
    l[[i]] <- new_element
    i <- i + 1
}

より詳細な情報は、Patrick Burns の R インフェルノ (第 2 章) をご覧ください。