У меня есть строка со списком слов, и я хочу получить из нее все возможные словосочетания.
fruits <- "Apple Banana Cherry"
Чтобы получить этот вывод:
"Apple, Banana, Cherry, Apple Banana, Apple Cherry, Banana Cherry, Apple Banana Cherry"
Используя функцию, определенную здесь , слегка измененную:
f1 <- function(str1){
v1 <- strsplit(str1, ' ')[[1]]
paste(unlist(sapply(seq(length(v1)), function(i)
apply(combn(v1, i), 2, paste, collapse=" "))), collapse= ', ')
}
f1(fruits)
Это прекрасно работаеткогда строк относительно мало, но в реальном примере в общей сложности содержится 33 300 символов в 3350 строках со средней длиной строки 25 символов, что приводит к ошибке, аналогичной this:
Ошибка в вставке (unlist (sapply (seq (length (v1))), function (i) apply (combn (v1,: результат превысил бы 2 ^ 31-1 байт)
Я пытался изменитьutils::combn
до RcppAlgos::comboGeneral
внутри функции, потому что она, по-видимому, * на 1022 * быстрее , но все же столкнулась с той же проблемой.