【发布时间】:2017-10-13 11:28:21
【问题描述】:
我刚刚读到矢量化提高了性能并显着降低了计算时间,在 if() else 的情况下,最好的选择是 ifelse()。
我的问题是我在 for 循环中有一些 if 语句,每个 if 语句都包含多个赋值,如下所示:
x <- matrix(1:10,10,3)
criteria <- matrix(c(1,1,1,0,1,0,0,1,0,0,
1,1,1,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,1,1,1),10,3) #criteria for the ifs
output1 <- rep(list(NA),10) #storage list for output
for (i in 1:10) {
if (criteria[i,1]>=1) {
output1[[i]] <- colMeans(x)
output1[[i]] <- output1[[i]][1] #part of the somefunction output
} else {
if(criteria[i,2]>=1) {
output1[[i]] <- colSums(x)
output1[[i]] <- output1[[i]][1] #the same
} else {
output1[[i]] <- colSums(x+1)
output1[[i]] <- output1[[i]][1] #the same
}}}
如何将其翻译成 ifelse?
提前致谢!
【问题讨论】:
-
谢谢!已审核和更新
标签: r for-loop if-statement