你如何让 stargazer 识别 lmList 中的模型?

How do you get stargazer to recognise a model from lmList?

我有三个不同年份的数据,运行 使用 lmList() 对每个单独的年份进行回归。当我尝试使用 stargazer 获取 LaTex 代码时,我收到一条错误消息,提示它无法识别对象类型。当 运行 stargazer 用于正常线性回归时,它工作得很好,即使对象的 class 是相同的。

这是我对 lmList 的回归

fit <- lmList((lndeltaoms) ~ size + factor(gender)| year, data = tser)
stargazer(fit[["2008"]])
% Error: Unrecognized object type.

将此与正常回归进行比较,它有效。

fit2 <- lm((lndeltaoms) ~ size + factor(gender), data=tser)
stargazer(fit2)

但是当我比较 class 时,它们是一样的。

class(fit[["2008"]])
[1] "lm"
class(fit2)
[1] "lm"

因为是一样的class,感觉stargazer应该是一样的,但是从lmList中提取模型的时候好像有点问题

有什么办法可以解决这个问题吗?

它应该与 nlme 包中的 lmList() 一起工作(而不是 lme4 中的那个)。试用:

fit1 <- nlme::lmList((lndeltaoms) ~ size + factor(gender)| year, data = tser)
stargazer(fit1[["2008"]]) # ok

fit2 <- lme4::lmList((lndeltaoms) ~ size + factor(gender)| year, data = tser)
stargazer(fit2[["2008"]]) # this does not work

看起来 stargazer() 适用于 class lmList 的对象,但不适用于 lme4::lmList().

产生的 lmList4 对象

此外,加载 nlme 时要小心,因为它的函数 lmList()lme4::lmList() 屏蔽了。