2017-02-02 6 views
0

は、私はこれは私が書いたコードがあるRで線形モデルのリストを作成するには?

models=list() 
for (tag in tagnames){ 
    expr=paste0(tag," ~ .") 
    f=formula(expr) 
    models[tag]=lm(f,df) 
} 

Rに線形モデルの名前付きリストを作成する必要があります。実際にはリストを作成するが、明らかにそれは呼び出し可能なオブジェクトではないリストのリストである(すなわち、メソッドの予測がリストの要素に対して機能しない)。

リストの要素を実際のオブジェクトとして使用するにはどうすればよいですか?

+0

「tagnames」の例を教えてください。 – LAP

+0

tagnameはdfの列の名前を含む文字列のリストです。 – lapally

+0

これはリストのように二重括弧で囲む必要があります: モデル[[tag]] = lm(f、df) – Ansjovis86

答えて

1

あなたはlapplyであなたのモデルのリストを作成できます。そして、リスト要素にpredictを呼び出す

models <- lapply(tagnames, function(x) lm(formula(paste0(x, " ~ .")), df)) 

をして

names(models) <- tagnames 

に名前を割り当てる:

predict(models[["name"]]) 
+0

も ​​'reformulate'を使います:' models < - lapply(tagnames、function(x)lm(reformulate "。"、 "x"、 "df)))'である。 – lmo

0

あなたはこれはできます:

models[[tag]]=lm(f,df) 


models=list() 
tagnames <- names(cars) 
for (tag in tagnames){ 
    expr=paste0(tag," ~ .") 
    f=formula(expr) 
    fit <- lm(f, data = cars) 
    models[[tag]]=fit 
} 
関連する問題