2016-09-05 17 views
2

glmnetを使っていくつかの異なるモデルを作ることができます。 その後、モデルをリストに保存して、今後の使用でこのモデルのリストを使用することができました。私はこのリストからモデルを取得しようとしたとき R:glmnet:リストからのglmnetモデルの保存と使用

library(glmnet) 
x1=matrix(rnorm(100*20),100,20) 
y1=matrix(rnorm(100*3),100,3) 
fit1m=glmnet(x1,y1,family="mgaussian") 

x2=matrix(rnorm(100*20),100,20) 
y2=matrix(rnorm(100*3),100,3) 
fit2m=glmnet(x2,y2,family="mgaussian") 


x3=matrix(rnorm(100*20),100,20) 
y3=matrix(rnorm(100*3),100,3) 
fit3m=glmnet(x3,y3,family="mgaussian") 


listmodels <-list(fit1m,fit2m,fit3m) 
listmodels 

は、しかし、私はクラスのエラー

fit1 <- listmodels[1] 
fit1 


xnew=matrix(rnorm(100*20),100,20) 
pred1 <- as.data.frame(predict(fit1,newx=xnew),s="lambda.min") 
pred1 

を得た私は正しくリストの仕事でモデルを作るために何が必要ですか? ありがとうございました。

答えて

1

我々は正しくlist要素を抽出した場合、それはすなわち動作します 'listmodelsを[1]' まだlistで、我々は要素

fit1 <- listmodels[[1]] 

xnew=matrix(rnorm(100*20),100,20) 
pred1 <- as.data.frame(predict(fit1,newx=xnew),s="lambda.min") 
pred1 

を抽出するために 'listmodels [[1]]' を使用する必要があります

我々はすべてのlistの要素にこれをしたい場合は、我々はlistlapply)をループとは、同じプロセスを行うことができます

lapply(listmodels, function(x) as.data.frame(predict(x, 
     newx = matrix(rnorm(100*20), 100, 20)), s = "lambda.min")) 
関連する問題