我有2个向量
x <- c(2,2,5)
y <- c(1,2)
我希望将向量中的每个元素相加以获得
[1] 3 3 6 4 4 7
我该如何做到这一点?
outer
,将FUN
作为+
来使用。c(outer(x, y, `+`))
#[1] 3 3 6 4 4 7
expand.grid
创建每个x/y元素对,并计算行总和:rowSums(expand.grid(x, y))
# [1] 3 3 6 4 4 7
+
的rep
的变体:rep(x, length(y)) + rep(y, each=length(x))
[1] 3 3 6 4 4 7
+
的第二个参数使用了每个参数传递给 rep
,该函数将 y 中的每个元素重复对应 x 的长度。或者你可以尝试:
as.vector(sapply(y,function(i) (i+x)))