Đây là một chức năng tôi đã viết để phá vỡ một chuỗi dài vào dòng không dài hơn chiều dài choChèn ngắt dòng trong dài chuỗi - từ quấn
strBreakInLines <- function(s, breakAt=90, prepend="") {
words <- unlist(strsplit(s, " "))
if (length(words)<2) return(s)
wordLen <- unlist(Map(nchar, words))
lineLen <- wordLen[1]
res <- words[1]
lineBreak <- paste("\n", prepend, sep="")
for (i in 2:length(words)) {
lineLen <- lineLen+wordLen[i]
if (lineLen < breakAt)
res <- paste(res, words[i], sep=" ")
else {
res <- paste(res, words[i], sep=lineBreak)
lineLen <- 0
}
}
return(res)
}
Nó hoạt động cho vấn đề tôi đã; nhưng tôi tự hỏi liệu tôi có thể học được điều gì đó ở đây không. Có một giải pháp ngắn hơn hoặc hiệu quả hơn, đặc biệt là tôi có thể loại bỏ vòng lặp for?
Giải pháp tuyệt vời! Tôi cảm thấy tôi cần phải tìm hiểu về các biểu thức chính quy, Cảm ơn bạn đã chỉ ra sai lầm trong chức năng của tôi. –
Bạn có thể thêm ghi chú giải thích từng phần cụ thể không? – theforestecologist