2017-05-04 2 views
0

Tout d'abord, merci beaucoup pour votre intérêt et votre temps. Ma question (en utilisant R): Pour prédire l'Yvar, j'ai exécuter une régression Lasso qui a réduit l'ensemble des variables x de 736 à 30.Après Lasso: stocker les variables restantes comme nouvelle trame de données (en utilisant R)

lasso.mod =glmnet(x,y,alpha=1) 
cv.out =cv.glmnet (x,y,alpha=1) 
lasso.bestlam =cv.out$lambda.min 
tmp_coef = coef(cv.out,s=lasso.bestlam) 

varnames = data.frame(name = [email protected][[1]][[email protected]]) 
mylist = list(name = [email protected][[1]][[email protected]]) 

Par conséquent, je les noms de variables restant en tant que trame de données et aussi comme une liste. Comment est-il possible de créer une nouvelle trame de données contenant ces 30 variables restantes et leurs observations? En d'autres termes: Comment puis-je obtenir un sous-ensemble de mes données d'origine qui ne contient pas 737 variables mais seulement 31?

Je pense que cela devrait être assez facile, mais j'ai passé plus de deux heures et il n'a jamais travaillé ...

Meilleurs voeux, Thomas

+0

Cela semble être un problème de sélection de colonne standard. Prenez votre ancienne base de données et sélectionnez les colonnes de votre liste en tant que vecteur. Par exemple. 'mtcars [, c (" mpg "," cyl ")]' sélectionne ces deux colonnes à partir du jeu de données 'mtcars'. – coffeinjunky

+0

La recherche de ce site pour l'aide avec la sélection de colonne fournira plusieurs réponses pour vous. – BLT

+0

Le problème est que les variables après lasso vont peut-être changer (en fonction d'autres choses que je ferai avant d'exécuter le lasso). Par conséquent, je ne veux pas écrire à chaque fois 30 variables à la main. Mais merci pour votre temps et votre considération. –

Répondre