R: 不分割单词地截断字符串

6

我有一堆字符串,其中有一些相当长,就像这样:

movie.titles <- c("Il divo: La spettacolare vita di Giulio Andreotti","Defiance","Coco Before Chanel","Happy-Go-Lucky","Up","The Imaginarium of Doctor Parnassus")

我现在想将这些字符串截断到最多30个字符,但是不能在此过程中分开任何单词,最好的方式是如果字符串被截断了,在其末尾添加省略号。

2个回答

4
这里提供一种基于R语言的解决方案:
trimTitles <- function(titles) {
    len <- nchar(titles)
    cuts <- sapply(gregexpr(" ", titles), function(X) {
            max(X[X<27])})
    titles[len>=27] <- paste0(substr(titles[len>=27], 0, cuts[len>=27]), "...")
    titles
}
trimTitles(movie.titles)
# [1] "Il divo: La spettacolare ..."  "Defiance"                     
# [3] "Coco Before Chanel"            "Happy-Go-Lucky"               
# [5] "Up"                            "The Imaginarium of Doctor ..."

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接