安排包 - 顺序排列 128
arrangements package - permutations of order 128
我正在尝试使用 R 上的 ar运行gements 包 运行 跨越 128 个空间 'x' 和 'y' 的简单排列。
我不断收到以下错误消息:
Error in permutations(test, k = 128, replace = TRUE) : too many results
我运行的代码如下:
library(arrangements)
test <- c('x','y')
permutations(test, k = 128, replace = TRUE)
sessionInfo()如下:
R version 4.1.2 (2021-11-01)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Monterey 12.2.1
有没有我可以使用的解决方法?我也在试验并行包。请指教
正如@Rui 在评论中指出的那样,结果太多了:
npermutations(2, 128, replace=TRUE, bigz = TRUE)
Big Integer ('bigz') :
[1] 340282366920938463463374607431768211456
使用 skip
和 nitem
参数怎么样?这允许用户一次检索少量结果。
## First 100,000 results
system.time(res <- permutations(c('x', 'y'), 128, replace = TRUE, nitem = 1e5))
# user system elapsed
# 0.146 0.000 0.146
## process res
## Next 100,000 results
res <- permutations(c('x', 'y'), 128, replace = TRUE, skip = 1e5, nitem = 1e5)
## process res
## 100,000 results starting at leixcographical index 1e19 + 1
## n.b. need to use strings or bigz type
res <- permutations(c('x', 'y'), 128, replace = TRUE,
skip = "10000000000000000000", nitem = 1e5)
## process res
## etc.
如果需要,这可以很容易地推广到并行处理。
我正在尝试使用 R 上的 ar运行gements 包 运行 跨越 128 个空间 'x' 和 'y' 的简单排列。
我不断收到以下错误消息:
Error in permutations(test, k = 128, replace = TRUE) : too many results
我运行的代码如下:
library(arrangements)
test <- c('x','y')
permutations(test, k = 128, replace = TRUE)
sessionInfo()如下:
R version 4.1.2 (2021-11-01)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Monterey 12.2.1
有没有我可以使用的解决方法?我也在试验并行包。请指教
正如@Rui 在评论中指出的那样,结果太多了:
npermutations(2, 128, replace=TRUE, bigz = TRUE)
Big Integer ('bigz') :
[1] 340282366920938463463374607431768211456
使用 skip
和 nitem
参数怎么样?这允许用户一次检索少量结果。
## First 100,000 results
system.time(res <- permutations(c('x', 'y'), 128, replace = TRUE, nitem = 1e5))
# user system elapsed
# 0.146 0.000 0.146
## process res
## Next 100,000 results
res <- permutations(c('x', 'y'), 128, replace = TRUE, skip = 1e5, nitem = 1e5)
## process res
## 100,000 results starting at leixcographical index 1e19 + 1
## n.b. need to use strings or bigz type
res <- permutations(c('x', 'y'), 128, replace = TRUE,
skip = "10000000000000000000", nitem = 1e5)
## process res
## etc.
如果需要,这可以很容易地推广到并行处理。