如何将glmnet结果(coefs)写入R

时间:2016-03-03 17:33:36

标签: r glmnet

我使用R glmnet包进行弹性网,结果如下:

     TRTREJ6M_KIY                     .           
     TXKIDE                          -1.317048e-01
     TXKIDL                           .           
     TXKIDR                           .           
     URINE_INF_DON                    .           
     VASODIL_DONN                     .           
     VASODIL_DONU                     .            
     VASODIL_DONY                     .           

我试过这个:

   print1
   function(riskcoef99){ind <- which(coef(riskcoef99) != 0)
   df <- data.frame(
   feature=rownames(coef(riskcoef99))[ind],
   coeficient=coef(riskcoef99)[ind]
   )
   kable(df)
   }

和此:

    colnames(risklevelcsv)[which(coef(riskCV99,s="lambda.min") != 0)]

glmnet文件名是riskCV99,我用riskcoef99文件保存了coefs。 请帮我把结果写入csv,excel或我过去2天一直在尝试的文本文件,并且无法解决。 提前致谢

1 个答案:

答案 0 :(得分:0)

您没有提供足够的可重复示例,以确保我们能够符合您的具体情况,但请考虑这一点。

此功能

extract <- function(o, s) { 
    index <- which(coef(o, s) != 0) 
    data.frame(name=rownames(coef(o))[index], coef=coef(o, s)[index]) 
}

可用于从s对象glmnet提取非零系数(给定惩罚o)到数据帧。获得数据框后,可以使用write.csv

将其另存为csv
 df <- extract(riskcoef99, s=0.1)
 write.csv(df, file="saved.csv", row.names=FALSE, quote=FALSE)