R 问题:如何保存回归输出以便我可以使用 mtable
R question : How to save regression output so I can use 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
我将多个回归输出保存在一个列表中,但使用 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