仮定する:
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)
仮定する:
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)
使用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
rep
次のように使用できます。
rep(x, each = length(y)) - y
# [1] 1 0 -1 -6 -7 -8
代替案を追加するために回答を追加..
> x
[1] 2 -5
> y
[1] 1 2 3
> rowSums(expand.grid(-y,x))
[1] 1 0 -1 -6 -7 -8
2 つのステップ (@Ananda ソリューションよりもエレガントではありません) で、expand.grid
d <- expand.grid(x,y)
transform(d,difference = d$Var1 -d$Var2)
Var1 Var2 difference
1 2 1 1
2 -5 1 -6
3 2 2 0
4 -5 2 -7
5 2 3 -1
6 -5 3 -8
しかし、私のほうが読みやすいと思います:)(何から何を差し引くか知っています)