Предположим, у меня есть три слова: "blue"
, "red"
и "pink"
.Объединения из рекурсивных списков
Я хочу сгенерировать все комбинации букв, в которых я беру две буквы из «синего», а затем добавить к двум буквам из «красного», а затем добавить к двум буквам из «розового», например.
blrdpk
uerdin
и т.д ...
В R, я закодированы три мои слова, назначая символы каждого слова в список элементов с помощью
words <- list(list("b","l","u","e"), list("r","e","d"), list("p","i","n","k"))
Я знаю, что могу использовать lapply
с combn(words[[i]],m=2)
, чтобы получить все комбинации из 2 lett из каждого слова.
У меня есть два вопроса:
Есть более продвинутая версия combn(), который позволяет выбрать и объединить комбинации из различных «ковши» с учетом использования рекурсивных списков?
Если нет расширенной версии combn(), то какой лучший способ объединить каждую из двух комбинаций букв из каждого из трех слов?
Есть ли простой способ сделать это, если мне нужно различное количество букв от каждого слова? [Добавлено от пользователя комментарий в одном из ответа]
Имеет ли значение порядок букв? –
Заказ букв не имеет значения. – Alex
Кроме того, я просто читал, и, чтобы ответить на вопрос 2, я могу, вероятно, просто использовать expand.grid() – Alex