在 R 中创建 k 个向量的笛卡尔积
Create a cartesian product of k vectors in R
假设我有一个向量,我想创建 k 个相同向量的笛卡尔积,我如何在 R 中实现它。
就像,我的向量是
m
[1] 1 2
且 k 为 3,
如何得到像 3 m 的笛卡尔积这样的结果。
笛卡尔积在 R 中实现为 outer
,或其中缀版本 %o%
。因此:
m %o% m %o% m
# , , 1
#
# [,1] [,2]
# [1,] 1 2
# [2,] 2 4
#
# , , 2
#
# [,1] [,2]
# [1,] 2 4
# [2,] 4 8
或更容易扩展的形式,
Reduce(outer, rep(list(m), 3))
哪个returns一样。
假设我有一个向量,我想创建 k 个相同向量的笛卡尔积,我如何在 R 中实现它。
就像,我的向量是
m
[1] 1 2
且 k 为 3,
如何得到像 3 m 的笛卡尔积这样的结果。
笛卡尔积在 R 中实现为 outer
,或其中缀版本 %o%
。因此:
m %o% m %o% m
# , , 1
#
# [,1] [,2]
# [1,] 1 2
# [2,] 2 4
#
# , , 2
#
# [,1] [,2]
# [1,] 2 4
# [2,] 4 8
或更容易扩展的形式,
Reduce(outer, rep(list(m), 3))
哪个returns一样。