[在函数外时,下面的参数pbkrtest.limit = nobs(m1)
可以正常工作(因此,不生成消息)。
但是在foo()
功能内部时,无法识别nobs(m1)
(因此会生成一条消息)!我真的很想知道发生了什么事?
library(lme4)
library(emmeans)
dat <- read.csv('https://raw.githubusercontent.com/hkil/m/master/z.csv')
m1 <- lmer(y~ year*group + (1|stid), data = dat)
## WORKS FINE:
emtrends(m1, pairwise ~ group, var = "year", infer = c(T, T), pbkrtest.limit = nobs(m1))
## BUT NOW `nobs(m)` doesn't work inside the function:
foo <- function(m){
emtrends(m, pairwise ~ group, var = "year", infer = c(T, T), pbkrtest.limit = nobs(m))
}
## RUN:
foo(m = m1)
尝试在parent.frame中对其进行评估:
foo <- function(m, envir = parent.frame()) {
s <- substitute(emtrends(m, pairwise ~ group, var = "year", infer = c(TRUE, TRUE),
pbkrtest.limit = nobs(m)))
eval(s, envir)
}
foo(m = m1)
并将其报告给开发人员https://github.com/rvlenth/emmeans/issues
也使用TRUE而不是T,因为T可以被覆盖,但是TRUE不能。