R update()和glm()的作用域错误

R update()和glm()的作用域错误,r,function,scope,R,Function,Scope,我想我犯了一个奇怪的错误R 我正在构建一个函数do.regression(),用于管理多种类型的回归 在逻辑回归的情况下,我的函数调用glm2(x,data=model.data,family=family.fun,…)。glm()的家族函数可以是我的函数的一个参数,通过family.fun参数。默认值为family.fun=二项式 在我的函数中,我有一个对另一个自定义函数的调用(logLikRatio.test Chi)')) } 调用fake.do.regression(y~x)复制第一个

我想我犯了一个奇怪的错误
R

我正在构建一个函数
do.regression()
,用于管理多种类型的回归

在逻辑回归的情况下,我的函数调用
glm2(x,data=model.data,family=family.fun,…)
。glm()的家族函数可以是我的函数的一个参数,通过family.fun参数。默认值为
family.fun=二项式

在我的函数中,我有一个对另一个自定义函数的调用(
logLikRatio.test Chi)'))
}

调用fake.do.regression(y~x)复制第一个错误;如果
#family.fun这是一个有趣的问题,对我来说并不奇怪(
update
变得棘手)。你能发布一个最小的可复制的例子吗?嗨,本!看起来你在跟踪我的疯狂,从一个站点到另一个站点D重建它很难。。。我会比我想象的更努力……老实说,我对范围界定的理解还不足以解释它,但如果我将更新调用更改为
update(model,.~1,evaluate=FALSE)
,无论是否使用
family.fun
位,它对我来说都是有效的。
   Error in glm2(formula = y ~ 1, family = family.fun, data = model.data) : 
   object 'family.fun' not found
Error in is.data.frame(data) : object 'model.data' not found  
fake.do.regression <- function(x, data = globalenv(), family.fun = binomial) {
    model.data <- model.frame(x, data)
    model <- glm2(x, data=model.data, family = family.fun)
    fake.logLikRatio.test(model)
}

fake.logLikRatio.test <- function (model, model.ref = F ) {
    if (model.ref == F) {

        #family.fun <- binomial

        model.ref <- update(model, . ~ 1, F)
    }
    return( anova(model, model.ref, test="LRT")[2, 'Pr(>Chi)'])
}