我知道我可以很容易地写一个,但是没有人知道stringr(或stringi)是否已经具有一个函数,该函数将一个或多个用逗号分隔的单词的向量连接起来,但是在最后一个单词之前加上“ and”?
答案 0 :(得分:5)
您可以使用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"
答案 1 :(得分:1)
这是另一种解决方案:
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"
由reprex package(v0.2.1)于2019-05-11创建