【发布时间】:2013-05-29 14:35:31
【问题描述】:
我正在努力解决“for”循环中的输出分配问题:我生成了一个空矩阵(“结果”),它具有适当的(不是吗???)维度,循环应该分配函数的输出(请),但我收到一个错误......这是代码:
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)”。有什么想法吗?
非常感谢您的时间和帮助!
切加
【问题讨论】: