将模型摘要转换为数据框
Convert model summary to data frame
我正在阅读此 post: 关于将摘要转换为数据框。但是我不确定如何为模型摘要做这件事,即:
set.seed(42)
y <- rnorm(100)
x <- rexp(100)
model <- lm(y ~ x)
正在尝试使用 post
中的代码
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
我正在阅读此 post:
set.seed(42)
y <- rnorm(100)
x <- rexp(100)
model <- lm(y ~ x)
正在尝试使用 post
中的代码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