小编Gaë*_*ano的帖子

如何并行化combn()?

函数combn()一次生成m个元素的所有组合.对于nCm small来说非常快速有效(其中n是x的元素数),但它很快就耗尽了内存.例如:

> combn(c(1:50), 12, simplify = TRUE)
Error in matrix(r, nrow = len.r, ncol = count) : 
invalid 'ncol' value (too large or NA)
Run Code Online (Sandbox Code Playgroud)

我想知道函数combn()是否可以修改,以便它只生成k个选择的组合.让我们将这个新函数调用为combn().然后我们会:

> combn(c("a", "b", "c", "d"), m=2)
     [,1] [,2] [,3] [,4] [,5] [,6]
 [1,] "a"  "a"  "a"  "b"  "b"  "c" 
 [2,] "b"  "c"  "d"  "c"  "d"  "d" 

>chosencombn(c("a", "b", "c", "d"), m=2, i=c(1,4,6))
     [,1] [,2] [,3]
 [1,] "a"  "b"  "c" 
 [2,] "b"  "c"  "d"

>chosencombn(c("a", "b", "c", "d"), m=2, i=c(4,5))
     [,1] [,2]
 [1,] "b"  "b" …
Run Code Online (Sandbox Code Playgroud)

parallel-processing combinations r combinatorics

5
推荐指数
1
解决办法
454
查看次数