R新手在这里。我在使用lmerTest
和stargazer
时遇到问题。我按照此处的教程让stargazer
与R中的lme4
一起使用。
我运行这个例子时没有任何问题。
library(lme4)
library(stargazer)
data(cake)
summary(M1 <- lmer(angle ~ temp + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
summary(M2 <- lmer(angle ~ factor(temperature) + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
anova(M1,M2)
stargazer(M1, M2, style="ajps", title="An Illustrative Model Using Cake Data", dep.var.labels.include = FALSE,
covariate.labels=c( "Temperature (Continuous)", "Temperature (Factor $<$ 185)", "Temperature (Factor $<$ 195)", "Temperature (Factor $<$ 205)", "Temperature (Factor $<$ 215)", "Temperature (Factor $<$ 225)")
)
虽然可行,但如果我添加lmerTest
个套餐,则stargazer
将无效。
library(lme4)
library(lmerTest)
library(stargazer)
data(cake)
summary(M1 <- lmer(angle ~ temp + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
summary(M2 <- lmer(angle ~ factor(temperature) + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
anova(M1,M2)
stargazer(M1, M2, style="ajps", title="An Illustrative Model Using Cake Data", dep.var.labels.include = FALSE,
covariate.labels=c( "Temperature (Continuous)", "Temperature (Factor $<$ 185)", "Temperature (Factor $<$ 195)", "Temperature (Factor $<$ 205)", "Temperature (Factor $<$ 215)", "Temperature (Factor $<$ 225)")
)
Error in objects[[i]]$zelig.call :
$ operator not defined for this S4 class
我真的想使用stargazer
但我的实验需要使用merModLmerTest
不支持的stargazer
个对象。有人知道解决方法吗?将merModLmerTest
对象转换为兼容的lmerMod
对象有多难?
答案 0 :(得分:8)
只是查看代码,我认为这是一个stargazer
问题。 stargazer
可以读取类lmerMod
的对象,而不是merModLmerTest
。由于该黑客攻击描述需要stargazer
包以便通过stargazer
包含随机效果,我认为你被卡住了。
如果你真的需要lmerTest
来完成你的工作(对于anova
函数来说,对吗?),我建议如下。
lme4
估算模型。您可以通过输入lme4::lmer(y + x1, Data)
来完成此操作。由于您在lmerTest
之后加载了lme4
包,lmerTest
实际上已成为运行lmer
函数的默认包。这就是您的对象成为stargazer
无法读取的类的原因。在一天结束时,它是相同的模型,只是以不同的方式存储。xtable
在LaTeX中创建anova结果,如果那是您想要的。此修订后的代码可以为您提供帮助。
library(lme4)
library(lmerTest)
library(stargazer)
library(xtable)
data(cake)
# Get the table first.
summary(M1 <- lme4::lmer(angle ~ temp + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
summary(M2 <- lme4::lmer(angle ~ factor(temperature) + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
stargazer(M1, M2, style="ajps", title="An Illustrative Model Using Cake Data", dep.var.labels.include = FALSE,
covariate.labels=c( "Temperature (Continuous)", "Temperature (Factor $<$ 185)", "Temperature (Factor $<$ 195)", "Temperature (Factor $<$ 205)", "Temperature (Factor $<$ 215)", "Temperature (Factor $<$ 225)")
)
# now for lmerTest
summary(M1a <- lmer(angle ~ temp + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
summary(M2a <- lmer(angle ~ factor(temperature) + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE))
anovadf <- data.frame(anova(M1a,M2a))
xtable(anovadf)
答案 1 :(得分:4)
这是一个简单的解决方法。将lmerTest
(在类merModLmerTest
中)的输出转换为lmerMod
类。这将与观星者兼容。
class(model) <- "lmerMod"