【发布时间】:2021-03-11 17:39:35
【问题描述】:
我正在准备自己的函数,这些函数将在相当大的数据库上运行。我可以看到当有内置循环时它们很慢,所以我试图避免它们。到目前为止,我不知道如何避免:
我想准备一个向量,它由其他两个向量组成,其方式取决于它们的组成部分。这是一个例子:
v1 <- 1:11
v2 <- 11:1
v3 <- vector()
for (i in 1:11){
if(v1[i] < v2[i]){
v3[i] <- v1[i] + v2[i]
}else if(v1[i] > v2[i]){
v3[i] <- v1[i] - v2[i]
}else{
v3[i] <- NA
}
}
你能解释一下如何创建没有循环的 v3 吗?该函数最终将使用更复杂的 if-else 语句(梯形图和内置语句)。
谢谢!
【问题讨论】:
-
很好奇这里的“相当大”是什么意思。例如,对于 100 万行,您可能需要与 1 亿行不同的方法。
-
真的!数据不会超过 100 万行。通常为 10 000 - 20 000。最多 200 000 - 300 000 行。
标签: r loops if-statement