このエラーはよく見えますが、私はこれを頭に入れているようには見えません。関数lda()は、サブセット引数を渡すときにエラーをスローします
私はLDAを行うためのショートカットとして次のコードを与えられました(コース上では(コード)は格付けされていません)。どうやらそれはいくつかのコンピュータで動作しますが、私のものではありません。私はR and R studioとMASSライブラリをアップグレードしました。何か案は?
私が手にエラーがある:
Error in eval(expr, envir, enclos) : object 'training' not found
コードは、私は次のことを実行して、エラーを取得し
lda.valid <- function(formula,data,...,train.fraction=0.75){
grouping <- model.response(model.frame(formula,data))
tbl <- table(grouping,lda(formula,data,...,CV=TRUE)$class)
CV <- sum(diag(tbl))/sum(tbl)
n <- nrow(data)
training <- sample(1:n,n*train.fraction)
lda.training <- lda(formula,data,...,subset=training)
lda.pred <- predict(lda.training,data[-training,])
tbl <- table(grouping[-training],lda.pred$class)
VAL <- sum(diag(tbl))/sum(tbl)
c(CV=CV,VAL=VAL)
}
です。それは私がエラーをキャッチするためにtrycatch
ものを見ていたが、私はスタックトレースを印刷することができますどのように表示されていない
lda.valid(Species~.,data=iris,prior=c(1/3,1/3,1/3),train.fraction=0.5)
「...」(省略符号)に関連しています。
ヒントやご提案です。私はおそらくこの時点でスタックトレースを理解していないでしょう。
のStackOverflowへようこそ。明確な質問を投稿してくれてありがとう! – Andrie
気づいていただきありがとうございます! – jason