「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)」であるため、わかりません。何か案は?
お時間をいただき、ありがとうございました。
チェガ