stringr function to concatenate vector of words separated by comma with “and” before last word

后端 未结 2 866
心在旅途
心在旅途 2021-01-22 12:23

I know I can easily write one, but does anyone know if stringr (or stringi) already has a function that concatenates a vector of one or more words separated by commas, but with

相关标签:
2条回答
  • 2021-01-22 12:48

    You can use the knitr::combine_words function

    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"
    
    0 讨论(0)
  • 2021-01-22 13:00

    Here's another solution :

    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"
    

    Created on 2019-05-11 by the reprex package (v0.2.1)

    0 讨论(0)
提交回复
热议问题