0

「for」ループでの出力割り当ての問題に取り組んでいます。ループが関数 (pls) からの出力を割り当てる必要がある適切な (そうではないか???) 次元を持つ空の行列 (「結果」) を生成します。しかし、エラーが発生しています...コードは次のとおりです。

library(pls)
set.seed(10000)
mat <- replicate(100, rnorm(100))
y <- as.matrix(mat[,1], drop=F)
x <- mat[,2:100]
min.nc <- 3
max.nc <- 8
nc <- seq(min.nc, max.nc)
results <- matrix(NA, length(nc), 1)
for(q in nc) {
  pls <- plsr(y ~ x, ncomp = q)
  results[q,] <- RMSEP(pls, intercept=F, estimate="train")$val[1,1,q]
}

「for」ループを実行した後のエラー メッセージには、次のように表示されます。

Error in `[<-`(`*tmp*`, q, , value = 0.329631604369802) : 
  subscript out of bounds

...イテレータ「nc」のサイズは正確に「length(nc)」であるため、わかりません。何か案は?

お時間をいただき、ありがとうございました。

チェガ

4

1 に答える 1