【问题标题】:Save as vector from For Loop in R从R中的For循环另存为向量
【发布时间】:2016-03-09 17:46:03
【问题描述】:

我有一个非常简单的问题。我一直在尝试将循环中的结果保存为向量。以下是我的可重现代码:-

a = matrix( c(0.7, 0.3, 0.2, 0.8),nrow=2, ncol=2, byrow = TRUE)
b = matrix( c(0.02, 0.45, 0.15, 0.30),nrow=2, ncol=2, byrow = TRUE)

d = 0
myvector <- c()

for (i in 1:2) {
    d = d + (a[, i] * b[, i]) 
    myvector[i] <- d
}

myvector
[1] 0.014 0.149

为什么它没有给我整个向量?它只给了我第一行的答案。我们如何将循环的结果存储为向量?

【问题讨论】:

  • 您应该尝试对代码进行矢量化,而不是使用 for 循环。比如看a*browSums(a*b)的结果。

标签: r loops vector


【解决方案1】:

试试这个:

a  = matrix( c(0.7, 0.3, 0.2, 0.8),nrow=2, ncol=2, byrow = TRUE)
b   = matrix( c(0.02, 0.45, 0.15, 0.30),nrow=2, ncol=2, byrow = TRUE)
d = 0
myvector <- vector()
for (i in 1:2){
 d = d + (a[,i] * b[,i]) 
myvector <- c(myvector, d)
}

【讨论】:

    猜你喜欢
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2020-01-05
    • 2016-08-18
    • 2017-07-08
    相关资源
    最近更新 更多