R:向量上的多项操作

R: Multiple Operations on a vector

我有一个简单的整数向量

 a<- c(5, 11, 20)

我想对其应用多项操作,例如

a1<- a+1
a2<- a+2
a3<- a-3

... 然后组合新的向量元素。在这个例子中,它将是:

new_a<-c(rbind(a1,a2,a3))

由于我的原始向量很大(~10,000),我想应用的操作也很多(~20),我想知道是否有更紧凑的方法来做同样的事情?

您可以使用outer函数:

a <- c(5, 11, 20)
op <- c(1, 2, -3)

new_a
# [1]  6  7  2 12 13  8 21 22 17

as.vector(t(outer(a, op, "+")))
# [1]  6  7  2 12 13  8 21 22 17