Skip to content

Instantly share code, notes, and snippets.

@sjewo
Created November 28, 2012 14:09
Show Gist options
  • Save sjewo/4161543 to your computer and use it in GitHub Desktop.
Save sjewo/4161543 to your computer and use it in GitHub Desktop.
Zeilenumbrüche für Label
# Funktion um Zeilenumbrüche nach m Zeichen einfügen
# Argumente:
# txt = Vektor mit Zeichenketten
# m = Anzahl an Zeichen nach denen ein Zeilenumbruch eingefügt werden soll (default: 10)
# bchar = Trennzeichen (default: \n)
breaking <- function(txt, m, bchar) {
out <- ""
for (i in 1:length(txt)) {
if (nchar(gsub(paste('^.*',
gsub("\\","\\\\",bchar, fixed=T),
sep=""),
'',out)) < m) { #Länge überprüfen, alles vor dem jeweils letzten Zeilenumbruch wird nicht berücksichtig
out <- paste(out,txt[i], sep=" ")
} else {
out <- paste(out,bchar,txt[i], sep=" ")
}
}
return(out)
}
# Hauptfunktion: Splittet die Texte und fügt die Zeilenumbrüche ein
linebreaks <- function(txt, m=10, bchar="\n") {
txt <- strsplit(txt," ") # Aufteilen bei Leerzeichen
out <- lapply(txt, breaking, m=m, bchar=bchar) # Teile wieder zusammenführen
return(unlist(out)) # Vektor erstellen
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment