R两两配对乘积。

5
我正在尝试获取向量的成对乘积,例如:
a = c(1,2,3,4)

我想要的是2、3、4、6、8、12(按照这个顺序)。

我尝试使用外部函数:

outer(1:4,2:4)

我得到了一个包含我想要的产品的矩阵,但我不确定如何以适用于更高维向量的方式从矩阵中提取它们。

谢谢!

2个回答

9

combn()函数很适合处理这种情况:

a <- 1:4

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

4
使用combn(1:4, 2, prod)命令。该命令可以从1到4中提取两个数字的所有组合,并计算每个组合的乘积。 - GSee

3
< p > lower.tri 按照这个顺序选择它们:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接