5

我正在尝试获取向量的成对乘积,例如

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

我想要得到的是

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

我试过使用外部:

outer(1:4,2:4)

这给了我一个包含我想要的产品的矩阵,但我不确定如何从矩阵中提取它们以缩放到更高维度的向量。

谢谢!

4

2 回答 2

9

combn()很适合这种事情:

a <- 1:4

combn(a, m = 2, FUN = prod) 
# [1]  2  3  4  6  8 12
于 2013-09-19T15:55:50.133 回答
3

lower.tri按顺序选择它们:

out <- outer(1:4,1:4)
out[lower.tri(out)]
# [1]  2  3  4  6  8 12
于 2013-09-19T15:55:02.940 回答