R如何为循环编写双精度并将结果存储在矩阵中
Posted
技术标签:
【中文标题】R如何为循环编写双精度并将结果存储在矩阵中【英文标题】:R How to Write Double for Loops and Store Result in a Matrix 【发布时间】:2019-11-24 02:22:46 【问题描述】:我想存储 X[i,j] 的结果。
X[i,j] = 阿尔法[i] + 贝塔[j]
我尝试编写这个双循环,但无法让它存储结果。感谢这里的任何帮助。谢谢!
for (i in length(alpha))
for (j in length(beta))
Xij <- alpha[i] + beta[j]
matrix[i,j] <- Xij
编辑:有没有更有效的方法来做到这一点?由于数据集很大,for 循环运行需要很长时间。
【问题讨论】:
试试outer(alpha, beta, FUN = `+`)
这是一个错字,你可以使用seq_len(length(alpha))
和seq_len(length(beta))
来修复它
我意识到使用长度本身是不对的!它不会从 1 到长度... seq_len 会有所帮助。谢谢
【参考方案1】:
如果循环提供的性能不佳,您应该尝试outer
语句:
outer(alpha, beta, FUN = `+`)
【讨论】:
【参考方案2】:for (i in 1:length(alpha))
for (j in 1:length(beta))
Xij <- alpha[i] + beta[j]
matrix[i,j] <- Xij
【讨论】:
以上是关于R如何为循环编写双精度并将结果存储在矩阵中的主要内容,如果未能解决你的问题,请参考以下文章