r - R 问题:如何保存回归输出以便我可以使用 mtable
问题描述
我将多个回归输出保存在列表中,但使用 mtable 函数比较它们会引发错误。
我的回归具有相同的 x 和 y 列名称和数据类型,但会有不同的数据。此处的最小可重现示例。匹配常规 lm 输出和保存的列表元素表示它们是相同的。非常感谢帮助!
library(memisc) # for mtable - comparing regressions
x = cumsum(c(0, runif(100, -1, +1)))
y = cumsum(c(0, runif(100, -1, +1)))
# simple regression variables can be compared
fit1 = lm(y ~ x)
summary(fit1)
fit2 = lm(y ~ x)
mtable(fit1,fit2) # This works
## Saving as a list changes the lm output when accessing back the list element?
t<- list()
t<- append(t, list(fit1))
t<- append(t, list(fit2))
mtable(t[[1]], t[[2]]) # This does not work
# with lapply
p<- lapply(1:2,function(k){
fit1 = lm(y ~ x)
fit1
})
mtable(p[[1]],p[[2]]) # This does not work
all.equal(fit1,p[[1]]) # Returns TRUE
all.equal(fit1,t[[1]]) # Returns TRUE
解决方案
我可以确认这mtable
对我不起作用......我不明白为什么它不会。它抱怨一些属性:
Error in attributes(.Data) <- c(attributes(.Data), attrib): 'names' attribute [6] must be the same length as the vector [2]
经检查,它们都是相同的。
如果您不太大惊小怪,我会stargazer
改用它,它与列表完美搭配。实际上,它可以直接获取列表,而mtable
不是根据它的帮助页面。
x = cumsum(c(0, runif(100, -1, +1)))
y = cumsum(c(0, runif(100, -1, +1)))
# simple regression variables can be compared
fit1 = lm(y ~ x)
fit2 = lm(y ~ x)
# with lapply
p<- lapply(1:2,function(k){
fit1 = lm(y ~ x)
fit1
})
stargazer::stargazer(fit1, fit2, type = "text")
#>
#> ==========================================================
#> Dependent variable:
#> ----------------------------
#> y
#> (1) (2)
#> ----------------------------------------------------------
#> x 1.329*** 1.329***
#> (0.081) (0.081)
#>
#> Constant -2.198*** -2.198***
#> (0.178) (0.178)
#>
#> ----------------------------------------------------------
#> Observations 101 101
#> R2 0.731 0.731
#> Adjusted R2 0.728 0.728
#> Residual Std. Error (df = 99) 1.447 1.447
#> F Statistic (df = 1; 99) 269.086*** 269.086***
#> ==========================================================
#> Note: *p<0.1; **p<0.05; ***p<0.01
stargazer::stargazer(p, type = "text")
#>
#> ==========================================================
#> Dependent variable:
#> ----------------------------
#> y
#> (1) (2)
#> ----------------------------------------------------------
#> x 1.329*** 1.329***
#> (0.081) (0.081)
#>
#> Constant -2.198*** -2.198***
#> (0.178) (0.178)
#>
#> ----------------------------------------------------------
#> Observations 101 101
#> R2 0.731 0.731
#> Adjusted R2 0.728 0.728
#> Residual Std. Error (df = 99) 1.447 1.447
#> F Statistic (df = 1; 99) 269.086*** 269.086***
#> ==========================================================
#> Note: *p<0.1; **p<0.05; ***p<0.01
推荐阅读
- c++ - C ++制作一个while循环以给出输入的操作数和运算符的总和,结束标志数据类型
- python - 不活动期后第一次请求缓慢
- android - jetpack compose 中的 layer-list 等价物是什么?
- javascript - 如何操作包装在标签内的 href 属性
- 标签?
- mysql - MySQL:指定错误的枚举值时禁止插入空字符串
- salesforce - 错误数字无效 - Informatica Cloud
- laravel - laravel 6 - 如何按外部表中的列排序
- swift - Swift 5/iOS 13+ – Google Cloud Functions 不允许我添加值
- javascript - HTML2PDF 返回空白 PDF
- python - Pandas:使用多张工作表导入 xlsx,将列添加到每个 df 及其所属的工作表名称,连接具有相同列数的 df