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文字に切り捨てたいと思いますが、プロセスで単語が分割されないようにし、理想的には、文字列が切り捨てられた場合に省略記号が文字列の末尾に追加されるようにします。 。

4

2 に答える 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 ..."
于 2012-06-19T13:41:09.937 に答える
0

関数をご覧になることをお勧めしますabbreviate。文字列を省略し、ある程度の制御を可能にします。見る:

http://stat.ethz.ch/R-manual/R-devel/library/base/html/abbreviate.html

マニュアルページ用。

于 2012-06-19T13:43:15.710 に答える