Aquí es una función que escribí para romper una larga cadena en líneas no más de una longitud dadaInsertar saltos de línea en cadena larga - Ajuste de línea
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)
}
Funciona para el problema que tuve; pero me pregunto si puedo aprender algo aquí. ¿Hay una solución más corta o más eficiente, especialmente puedo deshacerme del ciclo for?
¡Gran solución! Siento que necesito aprender sobre expresiones regulares. Gracias por señalar el error en mi función también. –
¿Podría agregar una nota explicando qué hace cada parte específicamente? – theforestecologist