Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重构R中的组合生成器?_R_Refactoring_Combinations - Fatal编程技术网

如何重构R中的组合生成器?

如何重构R中的组合生成器?,r,refactoring,combinations,R,Refactoring,Combinations,我需要所有可能的数字组合,从1到79,每次最多15个。我有下面的代码 dets <- 1:79 all.subsets <- dets for (i in 2:15) { all.subsets <- c(all.subsets, combn(x=dets, m=i, simplify=FALSE)) } 我想听听其他更好的方法 如果我正确理解了您想要的内容,那么列表中将包含sum(选择(79,1:15))元素,即6.961719e+15。您知道这样一个列表的大小

我需要所有可能的数字组合,从1到79,每次最多15个。我有下面的代码

dets <- 1:79
all.subsets <- dets
for (i in 2:15) {
      all.subsets <- c(all.subsets, combn(x=dets, m=i, simplify=FALSE))
}

我想听听其他更好的方法

如果我正确理解了您想要的内容,那么列表中将包含
sum(选择(79,1:15))
元素,即6.961719e+15。您知道这样一个列表的大小(以GB为单位)吗?是的,您理解正确。我不确定它的大小,但我想它非常大,我需要它来完成我的任务!因此,找到实现这一点的最佳方法。运行i=1:4的代码将创建一个100Mb大小的1584740个元素的对象。这意味着6.961719e+15个元素的总容量大约为4亿GB。我真的不明白你是怎么让它在你的编辑器中工作的。我用同样的方法尝试了I=1:4,得到了一个96.7MB大小的1584740个元素的对象。我没有尝试I=1:15,而是建议用另一种方法来做这项工作,而不是循环。但是尺寸问题仍然存在!让我重新表述一下我的发言,以澄清歧义。我不确定我是否理解这个问题。如果一次最多需要5个,为什么要迭代到m=15?。此外,您确定需要所有组合的显式表示吗?根据您的需要,可能会有更高效的表示。你打算如何使用这个列表?
all.subsets <- lapply(1:15, combn, x = dets, simplify = FALSE)
lengths(all.subsets)