gpt4 book ai didi

r - R 中的参数在函数外部有效但在函数内部失败

转载 作者:行者123 更新时间:2023-12-02 02:51:13 25 4
gpt4 key购买 nike

当在函数外部时,下面的参数 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 不能。

关于r - R 中的参数在函数外部有效但在函数内部失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61945342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com