在自己的R函数中调用glmulti时“找不到对象”

时间:2016-10-20 09:34:56

标签: r

我想执行以下功能:

library(glmulti)
jmra <- function(fname){
    mydata <- read.csv(fname)
    myvars <- c('X1', 'X2', 'X3', 'X4', 'X5', 'X6')
    formula <- paste('Y ~', paste(myvars, collapse='+'))
    glmulti.lm.out <- glmulti(formula, data=mydata, level=1, method="h", crit="aicc", confsetsize=50, plotty=F, report=F, fitfunction='lm')
    return(glmulti.lm.out)
}
test <- jmra('test.csv')

但是,我得到的是此错误消息:

  

glmulti中的错误(y = Y~X1 + X2 + X3 + X4 + X5 + X6:未找到对象'mydata'

有趣的是,如果相同的代码在此函数之外,一切正常。 那么这里发生了什么?

1 个答案:

答案 0 :(得分:0)

这里已经提供了答案: error object not found when calling glmulti within a function

如果&#34; glmulti&#34;像这样调用,一切都按照:

glmulti.lm.out<- do.call("glmulti", list(formula, data=mydata, level=1, method="h", crit="aicc", confsetsize=50, plotty=F, report=F, fitfunction='lm'))