Генерация всех возможных перестановок (или 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"
Другие вопросы по тегам