首页 > 解决方案 > 如何将广义线性模型的输出 [summary(model)] 保存为 R 中的 .csv 文件?

问题描述

我正在尝试从 GLM 写入或导出输出/结果,但我不断收到错误消息。我的数据同时具有连续(数字)和分类(因子)变量。在运行模型之前,我是否需要指定哪个变量?

这是我使用的代码:

library(dplyr)
setwd("F://Aug 2019") 
cg <- read.csv("GZLM_CG.csv")
names(cg) 
str(cg)

#####GLiMs#######

model1 <- glm(weight ~ Var1 + Var2 + Var3 + Var4 + Var5, data=cg)
summary(model1)
write.csv(model1,file='GZLM_CG_M1_result.csv')

使用此代码:

write.csv(model1,file='GZLM_CG_M1_result.csv')

我收到以下错误消息:

Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
  cannot coerce class ‘c("glm", "lm")’ to a data.frame

我找不到解决办法,但我敢肯定它一定很简单。我希望使用 summary(model1) 的输出创建 .csv 文件,但我收到了上面的错误消息。先感谢您。

所以这是 summary(model1) 的输出

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.2676  -0.9872   0.1245   0.9605   2.7419  

Coefficients:
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)         7.573e-01  3.576e-01   2.118 0.034194 *  
Var1                2.375e-02  3.570e-02   0.665 0.505869    
Var2               -2.042e-04  6.059e-05  -3.370 0.000752 ***
Var3               -8.885e-02  3.300e-03  -26.927  < 2e-16 ***
Var4                4.629e-01  5.077e-01   0.912 0.361913    
Var5_1              1.169e-01  2.612e-01   0.448 0.654348    
Var5_2              1.887e+00  2.970e-01   6.353 2.11e-10 ***
Var5_3              1.324e+00  2.907e-01   4.555 5.23e-06 ***
Var5_4              9.305e-01  2.625e-01   3.545 0.000392 ***
Var5_5              -5.847e-01  2.740e-01  -2.134 0.032815 *  
Var5_6              9.736e-01  7.220e-01   1.348 0.177531    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 12441  on 8973  degrees of freedom
Residual deviance: 10540  on 8963  degrees of freedom
AIC: 10562

Number of Fisher Scoring iterations: 4

标签: r

解决方案


你不能那样保存它,但我假设你想要原始的重量值、拟合的重量值和残差。如果是,那么您可以执行以下操作。

model1 <- glm(weight ~ Var1 + Var2 + Var3 + Var4 + Var5, data=cg) 
Temp_df <- data.frame(cg$weight, model1$fitted.values, model1$residuals)
write.csv(Temp_df,file='GZLM_CG_M1_result.csv')

如果你想要别的东西,请告诉我。

编辑以回应评论。


从它说“系数:”的那一行到“Var5_6 9.736e-01 7.220e-01 1.348 0.177531”这一行……​​就在破折号(----)之前,有“一些”希望将其投射到一个 csv(逗号分隔值),但在那之后,随着模式的丢失,所有的希望都落空了。不再有可以解析的列。但是,如果您担心“希望”部分,您可以这样做。

model1 <- glm(weight ~ Var1 + Var2 + Var3 + Var4 + Var5, data=cg) 
write.csv(summary(model1)['coefficients'],file='GZLM_CG_M1_result.csv')

我认为这是我所能看到的


推荐阅读