Às vezes, quero fazer um teste exato examinando todas as combinações possíveis dos dados para criar uma distribuição empírica com a qual posso testar minhas diferenças observadas entre as médias. Para encontrar as combinações possíveis, eu normalmente usaria a função combn. A função escolher pode me mostrar quantas combinações possíveis existem. É muito fácil que o número de combinações seja tão grande que não seja possível armazenar o resultado da função combn, por exemplo, combn (28,14) requer um vetor de 2,1 Gb. Por isso, tentei escrever um objeto que seguisse a mesma lógica da função combn para fornecer os valores de uma "pilha" imaginária, uma de cada vez. No entanto, esse método (como eu instanciei) é facilmente 50 vezes mais lento que o combn em tamanhos razoáveis de combinação,
Existe um algoritmo melhor para fazer esse tipo de coisa do que o algoritmo usado no combn? Especificamente, existe uma maneira de gerar e puxar a enésima combinação possível sem calcular todas as combinações anteriores?