Ответ 1
Я предполагаю, что это -задает другую проблему из-за определения сред в дереве синтаксиса методов S4 (один из вариантов, почему я не являюсь большим поклонником S4...)
Это можно показать, добавив цитаты вокруг dat:
> analyze <- function(dat)
+ {
+ out<- glmulti(y~x1+x2,data="dat",fitfunction=lm)
+ return (out)
+ }
> analyze(test)
Initialization...
Error in eval(predvars, data, env) : invalid 'envir' argument
Вы должны в первую очередь отправить эту информацию сопровождающим пакета, поскольку они знают, как они относятся к средам внутри страны. Им придется адаптировать функции.
A - самый грязный способ для себя, - это поместить "dat" в глобальную среду и удалить его впоследствии.
analyze <- function(dat)
{
assign("dat",dat,envir=.GlobalEnv) # put the dat in the global env
out<- glmulti(y~x1+x2,data=dat,fitfunction=lm)
remove(dat,envir=.GlobalEnv) # delete dat again from global env
return (out)
}
EDIT: Для ясности это действительно самое худшее решение, но мне не удалось найти ничего лучшего. Если кто-то другой дает вам решение, в котором вам не нужно касаться вашей глобальной среды, обязательно используйте этот.