在R中使用向量代替for循环

柯蒂斯

我的代码很长,并且正在尝试通过删除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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用向量代替循环

来自分类Dev

在[r]中使用for循环代替矩阵索引

来自分类Dev

在R中使用for循环生成向量

来自分类Dev

在 R 中使用 for 循环更新向量的问题

来自分类Dev

在R中使用嵌套循环进行优化(向量化?)

来自分类Dev

使用粘贴来代替字母或循环。[R

来自分类Dev

如何在R中使用相同的循环向量引用多个数据库?

来自分类Dev

如何在R中使用for循环以创建累积计数器向量?

来自分类Dev

使用API调用向量化R循环

来自分类Dev

何时在R中使用for循环

来自分类Dev

Replicate() 在 R 中使用 for 循环

来自分类Dev

在R中使用向量更改函数的输出

来自分类Dev

在 R 中使用“if”子句创建向量

来自分类Dev

向量迭代器不可在for循环中使用

来自分类Dev

在Matlab中使用动态向量作为for循环中的索引值

来自分类Dev

在向量push_back中使用scanf和while循环

来自分类Dev

在Matlab中使用动态向量作为for循环中的索引值

来自分类Dev

在 dplyr 的 for 循环中使用向量中的列名

来自分类Dev

如何在R中使用自动过程(例如,循环等)为向量之间的特定值序列查找匹配行

来自分类Dev

使用map()代替for循环

来自分类Dev

使用For循环代替If语句

来自分类Dev

R:关于使用lapply()函数代替for循环的问题

来自分类Dev

在RSpec中使用'the'代替'it'

来自分类Dev

在Julia中使用`\`代替`/`

来自分类Dev

使用for循环在R中使用manova?

来自分类Dev

使用循环组合向量

来自分类Dev

在R中使用url pdf代替文件pdf

来自分类Dev

代替 ”。” 在R中使用gsub()获得空间?

来自分类Dev

在R函数中使用变量名代替列名