【发布时间】: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*b和rowSums(a*b)的结果。