首页 > 解决方案 > 如何枚举R中矩阵中的所有组合?

问题描述

我正在尝试构建一个包含所有可能组合的矩阵。例如,

a=(1:2)^3 #=c(1,8)
b=(1:3)^2 #=c(1,4,9)

我想这样c定义c=c(1+1,1+4,1+9,8+1,8+4,8+9)。我从我之前的问题中了解到如何c从函数中获得这样的outer。我目前的问题是,我怎样才能得到一个矩阵M如下:

在此处输入图像描述

提前致谢!

标签: rmatrixcombinations

解决方案


我们可以expand.grid使用outer

data.frame(expand.grid(a, b), c = c(outer(a, b, "+")))

#  Var1 Var2  c
#1    1    1  2
#2    8    1  9
#3    1    4  5
#4    8    4 12
#5    1    9 10
#6    8    9 17

在哪里

outer(a, b, "+") #gives

#     [,1] [,2] [,3]
#[1,]    2    5   10
#[2,]    9   12   17

推荐阅读