Я знаю, что могу легко написать его, но кто-нибудь знает, есть ли у stringr (или stringi) уже функция, которая объединяет вектор из одного или нескольких слов, разделенных запятыми, но с "и" перед последним словом?
функция stringr для объединения вектора слов, разделенных запятой, с последним словом и перед ним
Ответы (2)
Вы можете использовать функцию knitr::combine_words
knitr::combine_words(letters[1:2])
# [1] "a and b"
knitr::combine_words(letters[1:3])
# [1] "a, b, and c"
knitr::combine_words(letters[1:4])
# [1] "a, b, c, and d"
person
MrFlick
schedule
10.05.2019
Большое спасибо. Я удивлен, что этой функции нет в stringr
- person code_cowboy; 10.05.2019
Вот еще одно решение:
enum <- function(x)
paste(c(head(x,-2), paste(tail(x,2), collapse = ", and ")), collapse = ", ")
enum(letters[1])
#> [1] "a"
enum(letters[1:2])
#> [1] "a, and b"
enum(letters[1:3])
#> [1] "a, b, and c"
enum(letters[1:4])
#> [1] "a, b, c, and d"
Создано 11 мая 2019 г. с помощью пакета reprex (v0.2.1)
person
Moody_Mudskipper
schedule
10.05.2019