假设:
x <- c(2,-5)
y <- c(1,2,3)
我如何获得:
z = c(2-1, 2-2, 2-3, -5-1, -5-2, -5-3) = c(1, 0, -1, -6, -7, -8)
发布于 2013-03-18 16:04:02
您可以按如下方式使用rep
:
rep(x, each = length(y)) - y
# [1] 1 0 -1 -6 -7 -8
发布于 2013-03-18 16:07:33
使用outer
> as.vector(outer(x, y, '-'))
# [1] 1 -6 0 -7 -1 -8
如果你想要另一种方式:
> as.vector(t(outer(x, y, '-')))
# [1] 1 0 -1 -6 -7 -8
发布于 2013-03-18 17:24:56
添加答案是为了添加备选方案..
> x
[1] 2 -5
> y
[1] 1 2 3
> rowSums(expand.grid(-y,x))
[1] 1 0 -1 -6 -7 -8
https://stackoverflow.com/questions/15472098
复制相似问题