這裏是我寫的,打破了長串入行不大於給定長度長串插入換行符 - 自動換行
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)
}
它適用於我的問題不再是一個功能;但我想知道我能否在這裏學到一些東西。是否有更短或更有效的解決方案,特別是我可以擺脫for循環?
偉大的解決方案!我覺得我需要了解正則表達式,謝謝你指出我的函數中的錯誤。 – 2010-02-28 18:53:48
你能否添加一個註釋來解釋每個部件具體做什麼? – theforestecologist 2017-01-21 23:59:44