2012-06-19 28 views
6

Tôi có bó dây, một số trong đó là khá dài, như vậy:R: Truncate chuỗi mà không cần những lời chia

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

bây giờ tôi muốn cắt ngắn những chuỗi tối đa, nói rằng, 30 ký tự , nhưng theo cách như vậy mà không có từ nào được tách ra trong tiến trình và lý tưởng sao cho nếu chuỗi là các hình elip cắt ngắn được thêm vào cuối chuỗi.

Trả lời

4

Dưới đây là một giải pháp R-based:

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 ..." 
Các vấn đề liên quan