在没有循环的情况下找到最多两个向量?

时间:2012-12-30 17:35:05

标签: r vectorization

如果有两个向量,请说xy

for (i in 1:length(x))
   z[i] = max(x[i],y[i])

请不要使用循环来帮助我执行此操作吗?

2 个答案:

答案 0 :(得分:13)

假设向量xy具有相同的长度,pmax就是你的功能。

z = pmax(x, y)

如果长度不同,由于回收,pmax表达式将返回与循环不同的值。

答案 1 :(得分:2)

为了完整起见,我提供了一个使用apply的解决方案:

Z = cbind(x,y)
apply(Z, 1, max)

我不知道不同的解决方案在速度方面的比较,但是,@ JevgenijsStrigins,你可以很容易地检查。