В чем разница между paste / paste0 и str_c? - PullRequest
0 голосов
/ 12 июня 2018

Кажется, я не вижу разницы между paste / paste0 и str_c для объединения одного вектора в одну строку, нескольких строк в одну строку или нескольких векторов в одну строку.

Когда я писал вопрос, я нашел это: https://www.rdocumentation.org/packages/stringr/versions/1.3.1/topics/str_c. Пример сообщества от richie@datacamp.com говорит, что разница в том, что str_c обрабатывает пробелы как пробелы (не как NA) и перерабатывает большесоответственно.Есть другие отличия?

1 Ответ

0 голосов
/ 12 июня 2018

paste0(..., collapse = NULL) - это оболочка для paste(..., sep = "", collapse = NULL), что означает отсутствие разделителя.Другими словами, с paste0() вы не можете применить какой-либо разделитель, в то время как у вас есть эта опция с paste(), тогда как по умолчанию используется один пробел.

str_c(..., sep = "", collapse = NULL) эквивалентно paste(), что означает, что у вас есть возможность настроить желаемый разделитель.Разница заключается в том, что str_c() по умолчанию не имеет разделителя, поэтому он действует как paste0() по умолчанию.

Paste() и paste0() являются функциями из базового пакета, тогда как str_c()происходит из пакета stringr.

Я не тестировал / микробенчмаркнул его, но по своему опыту я согласен с тем, что Райан str_c(), как правило, быстрее.

...