你好,我有一个问题,即如何总结行的所有组合。
考虑我有矩阵:
M<-replicate(5, rnorm(10))
现在,我想要一个通用的解决方案来使colSums
向量保存在所有可能的行组合的列表或数据框架中:例如,一些示例:
第1行 第2行2
第1行 第3行的彩色..
第2行 第3行
第2行 第4行..
第1行 第2行 行3..
第4行 第7行 行10...
行1 行2 行3 行4 行4 行5 行7 行7 行8 行9 行10
有人知道解决方案吗?非常感谢
set.seed(101)
M <- replicate(5, rnorm(10))
获取指定集行的列的向量的函数 用第1和2行测试它: 这将获得所有nway组合: 这是所有组合的列表,并将它们粘在一起... cs <- function(cc) colSums(M[cc,])
cs(c(1,2))
## 1 2
## 2.450401 -4.396749
csN <- function(N) {
cc <- combn(1:nrow(M),N,FUN=cs,simplify=FALSE)
names(cc) <- combn(1:nrow(M),N,FUN=paste,collapse=",")
return(cc)
}
do.call("c",lapply(2:nrow(M),csN))
## quote function name for safety (fails if a vble called c exists)
## $`1,2`
## [1] 0.2264254 -0.2683963 0.5447664 1.1740892 1.2406726
##
## $`1,3`
## [1] -1.0009803 1.9542036 -0.4317362 1.9028030 -1.8368686
##
## ...
##
## $`2,3,4,5,6,7,8,9,10`
## [1] 2.7764374 -4.9231973 -0.3762125 -0.4554264 -4.6341908
##
## $`1,2,3,4,5,6,7,8,9,10`
## [1] 2.4504010 -4.3967492 -0.5399682 0.4395108 -4.1517320