我的问题与此相关:R:所有排列的第一个 N 。在该链接中,有一个函数采用一组整数的前 N 个可能的排列。我想要类似的东西,但我不想选择前 N 个,而是想选择所有可能的排列的随机样本。我想这样做,而不必首先列出所有可能的排列,因为这对于大型整数集来说是计算密集型的。我怎样才能在 R 中做到这一点?
library(gtools)
random_permutations <- function(x, size) {
num_perms <- factorial(length(x))
if (size > num_perms) {
stop("Sample size cannot be greater than the total number of
permutations.")
}
selected_indices <- sample(num_perms, size)
selected_perms <- permutations(length(x), length(x), x)[selected_indices, ]
return(selected_perms)
}