【问题标题】:How to write glmnet results (coefs) into csv or text file in R如何将glmnet结果(coefs)写入R中的csv或文本文件
【发布时间】:2016-06-17 04:27:14
【问题描述】:

我正在为弹性网络使用 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 天一直在尝试但无法解决。 提前致谢

【问题讨论】:

    标签: r glmnet


    【解决方案1】:

    您没有提供足够的可重现示例来确保我们可以匹配您的确切情况,但请考虑这一点。

    这个函数

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

    可用于从glmnet 对象o 中提取非零系数(给定惩罚s)到数据帧。有了数据框后,您可以使用 write.csv 将其保存为 csv:

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

    【讨论】:

      猜你喜欢
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多