r - Error in `[<-` (`*tmp*` , , 下标越界 下标越界

在下面的代码中,我试图创建一个矩阵来列出每个城市的 opt.lam。运行循环后,前两个城市始终有效,然后我对之后的任何城市都出现错误。

这是我得到的错误。 (coefmatrix 工作正常,只是产生此错误的 lambdamatrix)。

错误 [<- ( *tmp* , , i, 值 = c(0.577199381062121, 0.577199381062121, : 下标越界

这是我的代码:

lambdamatrix <- matrix(nrow=n,ncol=2)
rownames(lambdamatrix) <- cityIDs
colnames(lambdamatrix) <- c("lambda.min","lambda.1se")
for (i in 1:n) {
  data <- subset(simdata, city==cityIDs[i])
  x <- as.matrix(data.frame(data[,3:24]))
cvfit <- cv.glmnet(x, data$Y, family="poisson", offset=log(data$population))
opt.lam <- c(cvfit$lambda.min, cvfit$lambda.1se)
fit <- glmnet(x, data$Y, family= "poisson", offset=log(data$population))
abline(plot(fit, "lambda", label= TRUE, 
            main = cityIDs[i]), v=log(opt.lam), lty=2, lwd=3, 
                                    col=c("red","dark green"))
coefmatrix[,i] <- coef(fit, s=opt.lam[1])[1:23]
lambdamatrix[,i] <- c(cvfit$lambda.min, cvfit$lambda.1se)[1:n]
}`

最佳答案

[,i] 中,i 是列索引器(而 [i,] 是行索引器)。

由于您将 lambdamatrix 定义为 matrix(nrow = n, ncol = 2),一旦您超过了 i=2,您就在问对于不存在的列。

关于r - Error in `[<-` (`*tmp*` , , 下标越界 下标越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29222524/

相关文章:

camunda - 控制部署的 Camunda BPM 的版本

r - 如何动态更改 R 中现有函数的一行

portable-executable - 为什么 PE 格式位置依赖?

github - 如何查看用户的 github 拉取请求评论列表?

c# - 从 Roslyn 中的方法符号生成方法签名的语法

qt - 如何从 QT 中的 RTSP 流解析 ONVIF 元数据?

python - 如何访问图中特定顶点的名称(python-igraph)

regex - R - 从文件中读取行的部分匹配

c# - 使用 Roslyn 时如何验证方法中的参数类型

dns - 为 DMARC 等将 DNS IN TXT 记录拆分为多行