如何解决将模型摘要转换为数据框
我正在阅读这篇文章:Convert summary to data.frame 关于将摘要转换为数据框。但是,我不确定如何为模型摘要进行操作,即:
set.seed(42)
y <- rnorm(100)
x <- rexp(100)
model <- lm(y ~ x)
尝试在帖子中使用代码
data.frame(unclass(summary(model)),check.names = FALSE,stringsAsFactors = FALSE)
但是我看到错误:
Error in model.frame.default(formula = y ~ x,drop.unused.levels = TRUE) :
invalid type (list) for variable 'x'
有什么简单的方法可以转换吗?
解决方法
model_df <- as.data.frame(coef(summary(model)))
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.2308795 0.15761451 1.464836 0.14616637
# x -0.1645842 0.09883217 -1.665290 0.09904877
为了避免行名称,您可以在之后或直接使用 data.table
将它们添加为列:
library(data.table)
model_df <- data.table(coef(summary(model)),keep.rownames = 'term')
setDF(model_df)
# term Estimate Std. Error t value Pr(>|t|)
# 1 (Intercept) 0.2308795 0.15761451 1.464836 0.14616637
# 2 x -0.1645842 0.09883217 -1.665290 0.09904877
编辑:正如所评论的,但 deschen,列名不会很好地修复您可以使用的列名 setNames()
。
model_df <-
setNames(model_df,c("term","coef","std_error","t_value","p_value"))
# term coef std_error t_value p_value
# 1 (Intercept) 0.2308795 0.15761451 1.464836 0.14616637
# 2 x -0.1645842 0.09883217 -1.665290 0.09904877
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。