私は今日Rコードで奇妙な動作を実現しました。 AICで段階的に回帰した結果のブートストラップ機能を含むパッケージ{boot.StepAIC}を試しました。しかし、私は統計的な背景がここに問題(私はそう望む)だとは思わない。
私はこれは私のコード例であるR.のトップレベルでの機能を使用することができます。機能は機能しますが(boot.stepAIC)、別の機能 - 環境問題の中でエラーを投げますか?
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
しかし、私はそれを独自の関数でラップしたかったのです。私はデータとその式をその関数に渡します。
モデルの適合が strsplitで100ブートストラップ標本のエラーで失敗した(nam.vars、 ":"):しかし、私は言って)(boot.stepAIC内のエラーを取得する非文字引数
# 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
だからここで間違いはありますか?私はそれが地方や地球環境と何か関係がなければならないと思われますね。
私は前に 'boot.stepAIC'を使用しますが、それはまた、式が(あまりにも環境問題に関連している)関数に渡される方法で行う必要があり疑っていません。いくつかのアイデアについては、http://stackoverflow.com/q/6877534、http://stackoverflow.com/q/7666807を参照してください。特に、lm'または '' 'を呼び出すdo.call'経由boot.stepAIC'は引数が渡される前に評価されているとして、その後に役立つことがあります。あなたはまた、コメントで' as.name'提案を調査することがあります。これらの問題は厄介です - 幸運! – Aaron
http://stackoverflow.com/q/8998884/210673も同じ問題であるように見えます。 – Aaron
私はこれをすでに読んでいる。私は問題が関連していると思います。 – Sebastian