生成所有可能的列组合,并在R中为每个列组合创建一个矩阵

时间:2013-02-02 00:13:25

标签: r

我有一个像这样的矩阵:

myarray=cov(matrix(rexp(200),50,10))

我想生成所有可能的列组合,并在可能的情况下使用列号而不是名称计算每个组合的相关矩阵。在第二步中,我想计算每个矩阵的行列式,所以可能有一种有效的方法。

1 个答案:

答案 0 :(得分:2)

这是一种方式:

list.of.matrices <- apply(expand.grid(rep(list(c(FALSE, TRUE)), ncol(myarray))),
                          1, function(j)myarray[, j, drop = FALSE])

length(list.of.matrices)
# [1] 1024

然后执行以下操作:

result <- sapply(list.of.matrices, function_of_your_choice)

但请注意,det只能应用于方形矩阵...请澄清。