我的代码很长,并且正在尝试通过删除for循环来加快处理速度。正如我所了解的,当您有多个嵌套循环时,它可能会降低您的代码速度。我的原始代码包含3个循环,分别运行598、687和44次迭代。运行大约需要15分钟。我使用此代码显示我正在运行的某些模型的输出,并且等待15分钟是不可接受的。我无法摆脱其中一个循环。我正在尝试使用向量,但无法正常运行。让我们看一下前10个迭代。
#data
flows=c(-0.088227, 0.73024, 0.39683, 1.1165, 1.0802, 0.22345, 0.78272, 0.91673, 0.53052, 0.13852)
cols=c(31, 31, 30, 30, 30, 30, 31, 31, 31, 31)
rows=c(3, 4, 4, 5, 6, 7, 7, 8, 9, 10)
dataset=matrix(0,33,44)
for (i in 1:10){dataset[rows[i],cols[i]]<-flows[i]+dataset[rows[i],cols[i]]}
#And this is my alternative(Not working)
dataset=matrix(0,33,44)
NoR=10
dataset[rows[1:NoR],cols[1:NoR]]<-flows[1:NoR]+dataset[rows[1:NoR],cols[1:NoR]]
在这里看到问题。列以某种方式显示了相同的行信息。我在这里想念什么?为什么第二个代码不能正确运行?
要解决您真正的潜在潜在问题有点困难,因为我猜我们在这里只看到一小段代码。但我认为您可能正在寻找这样的东西:
flow_mat <- matrix(0,33,34)
flow_mat[(cols - 1) * 33 + rows] <- flows
请记住,矩阵只是具有标注属性的向量。因此,您可以像对向量一样对其进行索引,并假设索引从“左上方”开始并按列环绕。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句