Использование слова stringr () для повторения и группировки предложения

Вот веселый Я пытаюсь сделать именно то, что делает этот пост. То есть повторение и группировка слов.

Уловка с этим вопросом заключается в том, что я хотел бы сделать это чисто с stringr"s word() функция с paste0 обертка. Возьмите следующее sentence

sentence <- "Jane saw a cat and then Jane sat down."

Точный результат будет

[1] "Jane saw, saw a, a cat, cat and, and then, then Jane, Jane sat, sat down."

Я получил это далеко, но word() оставляет дополнительный "" в конце этой строки, вероятно, из-за того, как я написал свой код в word() потому что иначе не оставить пустую строку.

> library(stringr)
> len <- length(strsplit(sentence, " ")[[1]])
> paste0(word(sentence, c(1, 2:len), c(2, 3:len)), collapse = ", ")
[1] "Jane saw, saw a, a cat, cat and, and then, then Jane, Jane sat, sat down., "

Можно ли это сделать без запаздывания ", " используя только word() функционировать?

1 ответ

Решение

Я думаю твой start а также end аргументы word должны быть одинаковой длины (в противном случае происходит повторная обработка), поэтому

paste0(word(sentence, c(1:(len-1)), c(2:len)), collapse = ", ")

или же

paste0(word(sentence, -c(len:2), -c((len-1):1)), collapse = ', ')

сделал бы трюк

Другие вопросы по тегам