функция работает (boot.stepAIC )но выдает ошибку внутри другой функции -проблема среды?

Сегодня я заметил странное поведение в моем R-коде. Я попробовал пакет {boot.StepAIC}, который включает функцию начальной загрузки для результатов пошаговой регрессии с AIC. Однако я не думаю, что статистическая подоплека является здесь проблемой (. Надеюсь, ).
Я могу использовать функцию на верхнем уровне R. Это мой пример кода.

require(MASS)
require(boot.StepAIC)

n<-100
x<-rnorm(n); y<-rnorm(n,sd=2); z<-rnorm(n,sd=3); res<-x+y+z+rnorm(n,sd=0.1)
dat.test<-as.data.frame(cbind(x,y,z,res))
form.1<-as.formula(res~x+y+z)
boot.stepAIC(lm(form.1, dat.test),dat.test) # should be OK - works at me

Однако я хотел обернуть это в собственную функцию. Я передаю данные и формулу этой функции. Но я получаю сообщение об ошибке в boot.stepAIC ()о том, что:

подгонка модели не удалась в 100 образцах начальной загрузки. Ошибка в strsplit (nam.vars, " :"):не -символьный аргумент

# custom function
fun.boot.lm.stepAIC<-function(dat,form) {
  if(!inherits(form, "formula")) stop("No formula given")
  fit.lm<-lm(formula=form,data=dat)
  return(boot.stepAIC(object=fit.lm,data=dat))
 }
fun.boot.lm.stepAIC(dat=dat.test,form=form.1)
# results in an error 

Так где же ошибка? Я полагаю, это должно иметь какое-то отношение к локальной и глобальной среде, не так ли?

5
задан Siguza 23 July 2015 в 12:55
поделиться