Reputation: 453
I'm trying to get the pairwise products of a vector, say
a = c(1,2,3,4)
What I'm trying to get is
2,3,4,6,8,12 (in that order).
I've tried using outer:
outer(1:4,2:4)
and that gives me a matrix that includes the products I want but I'm not sure how to extract them from the matrix in a way that scales to vectors of higher dimensions.
Thanks!
Upvotes: 5
Views: 1705
Reputation: 162331
combn()
is nice for this sort of thing:
a <- 1:4
combn(a, m = 2, FUN = prod)
# [1] 2 3 4 6 8 12
Upvotes: 9
Reputation: 66819
lower.tri
selects them in that order:
out <- outer(1:4,1:4)
out[lower.tri(out)]
# [1] 2 3 4 6 8 12
Upvotes: 3