Генерация всех возможных перестановок (или n-кортежей)
Я хотел бы создать data.frame из всех возможных перестановок из 10 переменных, которые могут быть 1 или 2
2*2*2*2*2*2*2*2*2*2 = 1024 # possible
1,1,1,1,1,1,1,1,1,1
1,2,1,1,1,1,1,1,1,1
1,2,2,1,1,1,1,1,1,1
1,2,2,2,1,1,1,1,1,1
...
Есть ли "быстрый" способ сделать это в R?
1 ответ
Решение
Как насчет этого:
tmp = expand.grid(1:2,1:2,1:2,1:2,1:2,1:2,1:2,1:2,1:2,1:2)
или это (спасибо Тайлеру)
x <- list(1:2)
tmp = expand.grid(rep(x, 10))
Некоторые люди задавали вопрос относительно букв, например здесь. Обычно дается решение expand.grid, но я считаю, что это намного проще:
sapply(LETTERS[1:3], function(x){paste0(x, LETTERS[1:3])}) %>% c()
# [1] "AA" "AB" "AC" "BA" "BB" "BC" "CA" "CB" "CC"