将向量中的每个元素添加到另一个向量中。

6

我有2个向量

x <- c(2,2,5)
y <- c(1,2)

我希望将向量中的每个元素相加以获得

[1] 3 3 6 4 4 7

我该如何做到这一点?

4个回答

8
我们可以使用outer,将FUN作为+来使用。
c(outer(x, y, `+`))
#[1] 3 3 6 4 4 7

4
你可以尝试使用expand.grid创建每个x/y元素对,并计算行总和:
rowSums(expand.grid(x, y))
# [1] 3 3 6 4 4 7

1
您也可以使用带有+rep的变体:
rep(x, length(y)) + rep(y, each=length(x))
[1] 3 3 6 4 4 7
+ 的第二个参数使用了每个参数传递给 rep,该函数将 y 中的每个元素重复对应 x 的长度。

0

或者你可以尝试:

as.vector(sapply(y,function(i) (i+x)))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接