如何从R中的glmnet获取coefs名称?

时间:2017-01-25 21:57:34

标签: r glmnet lasso

我在R中用glmnet做套索。我有套索系数out$beta

输入:

x1  0.5744207722
x2 -0.3575682570
x3 -0.0995794334

如何提取变量名称?

期望的输出: x1, x2,x3

我尝试了什么

  1. $
  2. as.data.frame
  3. as.matrix
  4. 但没有一个将coefs转换为n行2列矩阵。它们仍然是矢量x1 0.5744207722

    我无法手动完成。我有超过1000个变量和更多模型可供运行。而且我不会把它写在我的磁盘上,然后把它读回来。

1 个答案:

答案 0 :(得分:1)

根据您上面的输入,您似乎使用单个lambda值指定了glmnet调用。

在这种特殊情况下,您可以提取系数的名称,如下所示:names(out$beta[, 1][out$beta[, 1] != 0])。请注意,只提取非零beta的名称,这在Lasso执行功能缩减时应用Lasso是有意义的。

最低可重复的例子如下: out <- glmnet(as.matrix(mtcars[-1]), mtcars[["mpg"]], lambda = 1)