R:对所有可能的排列进行随机抽样

问题描述 投票:0回答:1

我的问题与此相关:R:所有排列的第一个 N 。在该链接中,有一个函数采用一组整数的前 N 个可能的排列。我想要类似的东西,但我不想选择前 N 个,而是想选择所有可能的排列的随机样本。我想这样做,而不必首先列出所有可能的排列,因为这对于大型整数集来说是计算密集型的。我怎样才能在 R 中做到这一点?

r permutation
1个回答
0
投票
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)
}
© www.soinside.com 2019 - 2024. All rights reserved.