从矩阵(k x n)一次取m的向量(1 x n)的组合

时间:2014-12-07 13:20:05

标签: r combinations

我是这个论坛的新人。我在R工作。

我有一个matrix (k x n),我必须考虑一次取2,3,4的行vectors (1 x n)的所有组合。

示例:

考虑矩阵m = diag(c(rep(1, 3)))

我希望一次取3个向量(1 x n)的组合:

first: (1,0,0) and (0,1,0)
second: (1,0,0) and (0,0,1)
third: (0,1,0) and (0,0,1)

在第二时刻,对于每对夫妇,我需要计算列上的总和。 有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

m <- diag(c(rep(1, 3)))
tmp <- combn(nrow(m), 2)
array(t(m[tmp,]), c(ncol(m), 2, ncol(tmp))) 

#, , 1
#
#     [,1] [,2]
#[1,]    1    0
#[2,]    0    1
#[3,]    0    0
#
#, , 2
#
#     [,1] [,2]
#[1,]    1    0
#[2,]    0    0
#[3,]    0    1
#
#, , 3
#
#     [,1] [,2]
#[1,]    0    0
#[2,]    1    0
#[3,]    0    1