问题描述
问题在于听起来;目前,我使用broom
包整理我的回归摘要,然后使用write_csv
将摘要自然转换为csv。但是,问题在于,此“整理的”摘要不包含有用的统计信息,例如R平方,残差分布和F统计信息的p值。
有人知道如何将回归摘要写到包含此有用信息的csv中吗?
谢谢。
解决方法
一种替代方法是创建一个函数,该函数在list
中存储您需要的所有信息,如下所示:
lm(mpg ~ cyl,mtcars) -> model
model_stats <- function(model) {
data.frame(model = toString(model$call),broom::augment(model)) -> info1
data.frame(model = toString(model$call),broom::tidy(model)) -> info2
data.frame(model = toString(model$call),broom::glance(model)) -> info3
list(info1,info2,info3) -> info_all
return(info_all)
}
out <- model_stats(model)
sapply(seq_along(out),function(i) write.csv(model_stats(model)[[i]],paste0('info',i,'.csv')))
,
我认为,您的问题的核心问题是您不将所有汇总表都作为data.frames或list(通过编译所有信息)来处理,不是吗??
因此,如果您只想在csv中编写特定的统计信息摘要(aov,TukeyHSD,增强,浏览等),则应将其更改为data.frame
“扫帚”小插图中的一些示例:https://cran.r-project.org/web/packages/broom/vignettes/broom.html
glmfit <- glm(am ~ wt,mtcars,family = "binomial")
tidy(glmfit)
fit1 <- as.data.frame(augment(glmfit))
write.csv(fit1,"test.csv")