在 R 中的函数中使用 glmer 从 r.squaredGLMM 中找不到错误对象
Error object not found from r.squaredGLMM with glmer within a function in R
我正在尝试编写一个函数,使用 glmer 从 R 中的广义线性混合模型计算 R^2。不知何故,一旦尝试使用该功能,我就会收到错误消息:
Error in checkFormulaData(formula, data, checkLHS = control$check.formula.LHS == : bad 'data': object 'input_data' not found
如果我使用没有函数的相同代码,一切都很好。为了测试函数中 r.squaredGLMM 是否存在一般问题,我还为线性混合模型创建了一个函数,它按预期工作。
这是一个可重现的例子:
library(lme4)
library(MuMIn)
#Generate some sample data
x <- rnorm(100)
y1 <- sample(c(0,1), 100, replace = TRUE)
y2 <- rnorm(100)
subject <- rep(1:10, 10)
df <- data.frame(x,y1,y2,subject)
#Calculate glmer and get the R^2
mod1_outside_function <- glmer(y1 ~ x + (1|subject), data = df,family="binomial")
#Works just fine
R2 <- r.squaredGLMM(mod1_outside_function)
print(R2)
#Create a function to get the R2
R2_glmer <- function(input_data)
{
glmer_inside_function <- glmer(y1 ~ x + (1|subject), data = input_data,family="binomial")
R2 <- r.squaredGLMM(glmer_inside_function)
print(R2)
}
#I get the error running this:
R2_glmer(input_data = df)
#The same function works with lmer:
R2_lmer <- function(input_data)
{
lmer_inside_function <- lmer(y2 ~ x + (1|subject), data = input_data)
R2 <- r.squaredGLMM(lmer_inside_function)
print(R2)
}
R2_lmer(input_data = df)
这是一个在非全局环境中评估空模型的错误。它现在应该适用于 MuMIn 版本 >=1.42.4(目前在 R-forge 上)。要解决这个问题,您可以提供空模型作为第二个参数:
r.squaredGLMM(glmer_inside_function, null.fit(glmer_inside_function, RE.keep = TRUE, evaluate = TRUE))
我正在尝试编写一个函数,使用 glmer 从 R 中的广义线性混合模型计算 R^2。不知何故,一旦尝试使用该功能,我就会收到错误消息:
Error in checkFormulaData(formula, data, checkLHS = control$check.formula.LHS == : bad 'data': object 'input_data' not found
如果我使用没有函数的相同代码,一切都很好。为了测试函数中 r.squaredGLMM 是否存在一般问题,我还为线性混合模型创建了一个函数,它按预期工作。
这是一个可重现的例子:
library(lme4)
library(MuMIn)
#Generate some sample data
x <- rnorm(100)
y1 <- sample(c(0,1), 100, replace = TRUE)
y2 <- rnorm(100)
subject <- rep(1:10, 10)
df <- data.frame(x,y1,y2,subject)
#Calculate glmer and get the R^2
mod1_outside_function <- glmer(y1 ~ x + (1|subject), data = df,family="binomial")
#Works just fine
R2 <- r.squaredGLMM(mod1_outside_function)
print(R2)
#Create a function to get the R2
R2_glmer <- function(input_data)
{
glmer_inside_function <- glmer(y1 ~ x + (1|subject), data = input_data,family="binomial")
R2 <- r.squaredGLMM(glmer_inside_function)
print(R2)
}
#I get the error running this:
R2_glmer(input_data = df)
#The same function works with lmer:
R2_lmer <- function(input_data)
{
lmer_inside_function <- lmer(y2 ~ x + (1|subject), data = input_data)
R2 <- r.squaredGLMM(lmer_inside_function)
print(R2)
}
R2_lmer(input_data = df)
这是一个在非全局环境中评估空模型的错误。它现在应该适用于 MuMIn 版本 >=1.42.4(目前在 R-forge 上)。要解决这个问题,您可以提供空模型作为第二个参数:
r.squaredGLMM(glmer_inside_function, null.fit(glmer_inside_function, RE.keep = TRUE, evaluate = TRUE))