【发布时间】:2016-02-10 10:04:38
【问题描述】:
我正在尝试编写一个计算量非常大的算法,因此我想用一个 apply 函数替换每个循环。但是,我在下面的循环中很累,我想知道是否有人有任何想法。 bc 是一个由 0 和 1 组成的矩阵,ac 是一个由 0 组成的矩阵,与 bc 具有相同的暗度。
for (i in 1:nr){
for (j in 1:nr){
ac[i,j] <- (bc[i,j]+bc[j,i])/2
}
}
【问题讨论】:
-
NB 下面的答案更好、更快、更简洁,因为它是矢量化。
apply之类的函数只是语法糖——更简单、更清晰——但并不比循环更有效或更快。
标签: r apply sapply tapply mapply