0

如果有两个向量,说xy

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

您能帮我在不使用循环的情况下执行此操作吗?

4

2 回答 2

13

假设向量xy的长度相同,pmax是您的功能。

z = pmax(x, y)

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

于 2012-12-30T17:36:55.730 回答
2

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

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

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

于 2012-12-30T19:15:09.833 回答