8

RでOLSの結果を名前付きリストに入力しようとしています。

li = list()
for (i in 1:10)
    li[["RunOne"]][i] = lm(y~x)

これは、フィッティングRunOne実行を指定するランダムな名前であり、y事前x定義されたベクトルです。これは壊れて、エラーが発生します

Warning message:
In l[["RunOne"]][1] = lm(y ~ x) :
  number of items to replace is not a multiple of replacement length

エラーは理解できますが、修正方法がわかりません。

4

1 に答える 1

8

2 つの解決策があります (正確に何をしたいかによって異なります)。

  1. リストを作成し、lm各要素にオブジェクトを追加します。

    li = list() 
    for (i in 1:10) 
        li[[i]] = lm(y~x)
    
  2. リストのリストを持っています:

    li[["RunOne"]] = list()
    for (i in 1:10) 
        li[["RunOne"]][[i]] = lm(y~x)
    

通常、一[ ]重括弧はベクトルとデータ フレームに使用され、二重括弧はリストに使用されます。

于 2012-11-18T21:07:08.517 に答える