R成对产品

时间:2013-09-19 15:47:41

标签: r product outer-join

我正在尝试获取矢量的成对产品,比如说

a = c(1,2,3,4)

我想要的是

2,3,4,6,8,12(按此顺序)。

我尝试过使用外部:

outer(1:4,2:4)

这给了我一个包含我想要的产品的矩阵但是我不知道如何从矩阵中提取它们以扩展到更高维度的矢量。

谢谢!

2 个答案:

答案 0 :(得分:9)

combn()很适合这类事情:

a <- 1:4

combn(a, m = 2, FUN = prod) 
# [1]  2  3  4  6  8 12

答案 1 :(得分:3)

lower.tri按顺序选择它们:

out <- outer(1:4,1:4)
out[lower.tri(out)]
# [1]  2  3  4  6  8 12