我使用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天一直在尝试的文本文件,并且无法解决。 提前致谢
答案 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
:
df <- extract(riskcoef99, s=0.1)
write.csv(df, file="saved.csv", row.names=FALSE, quote=FALSE)