Получить все комбинации для динамической длины элементов для выбора

У меня есть кадр данных:

dat <- data.frame(toys = c("bear", "car", "plane", "truck", "doll"),
                  price = c(1.23, 2.34, 3.45, 4.56, 5.67))

Теперь я хочу получить все комбинации игрушек, где я бы выбрал 2, 3 и 4 игрушки за раз.

Я мог бы вручную просто вызвать функцию combn три раза, например.

combn(dat$toys, 2)
combn(dat$toys, 3)
combn(dat$toys, 4)

Однако я ищу динамическое решение, в котором я мог бы в идеале указать диапазон (например, c(2,4)), и в результате я получил бы все вышеупомянутые комбинации за один вызов. В моем реальном примере у меня было бы ~ 22 игрушки, и я хотел бы получить другой диапазон комбинаций (например, все комбинации «от 7 до 14 элементов» или «от 8 до 13» и т. д.).

Любые идеи?


person deschen    schedule 28.11.2019    source источник


Ответы (1)


использовать любой из

Map(combn, list(dat$toys),2:4)

or

lapply(2:4,combn,x = dat$toys)

конечно можно добавить simplify=FALSE

person Onyambu    schedule 28.11.2019