我是这个论坛的新人。我在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)
在第二时刻,对于每对夫妇,我需要计算列上的总和。 有什么建议吗?
谢谢!
答案 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