Verknüpfung von Strings in R
Dabei gibt es verschiedene Optionen, die Strings miteinander zu verknüpfen. Die einfachste ist die explizite Angabe der einzelnen Strings als Parameter.
paste("Hallo","databraineo","!")
Benötigen wir ein anderen Trennzeichen als das Leerzeichen, dann kann es mit dem Parameter sep (für separator) angegeben werden.
paste("Ich","trenne","mit","Bindestrich",sep="-")
Haben wir einen Vektor von Strings, die alle miteinander zu einem String verbunden werden sollen, müssen wir den Parameter collapse verwenden.
vektor <- c("Hallo","databraineo","!") paste(vektor,collapse=" ")
Wenn wir collapse nicht setzen, dann werden die Strings komponentenweise miteinander verbunden und ein Vektor der gleichen Länge ausgegeben. Das ist das übliche Vorgehen in R, um eine Funktion vektorwertig zu machen.
vektor1 <- c("Hallo","databraineo","!") vektor2 <- c("eins","zwei","drei") paste(vektor1,vektor2)
Der R-Befehl paste0
Es gibt auch noch die Variante paste0. Bei dieser ist das Trennzeichen schon auf “” (also leer) gesetzt. Ansonsten verhält sich die Funktion identisch. Laut Manual soll sie ein klein wenig schneller sein als paste.
Code-Beispiel für die R-Funktion paste
# Verbinden von drei Strings zu einem paste("Hallo","databraineo","!") # mit Angabe des Trennzeichens paste("Hallo","databraineo","!",sep=",") # paste mit nur einem Vektor macht gar nichts vektor <- c("Hallo","databraineo","!") paste(vektor) # damit aus dem Vektor ein String wird, muss collapse gesetzt werden paste(vektor,collapse = " ") # bei Angabe von zwei oder mehr Vektoren werden diese komponentenweise verbunden. vektor1 <- c("Hallo","databraineo","!") vektor2 <- c("eins","zwei","drei") paste(vektor,vektor2) # Sind die Vektoren unterschiedlich lang, aber ein Vielfaches voneinander, # wird der kürzere Vektor entsprechend verlängert vektor1 <- c("Hallo","databraineo","!") vektor2 <- c("eins") paste(vektor1,vektor2) # paste0 paste0(vektor1,collapse="#") # Es gibt tatsächlich minimale Unterschiede in der Laufzeit library(rbenchmark) benchmark( "paste"={ a <- rnorm(10000);s1 <- paste(a,sep="",collapse="#") }, "paste0"={ b <- rnorm(10000);s0 <- paste0(a,collapse="#") }) # Die häufigste Anwendung ist vermutlich das Verknüpfen von Text und Variable print(paste("Die ersten Stellen von pi lauten",pi)) print(paste("Auf vier Nachkommastellen gerundet, sieht pi so aus:",round(pi,4))) # Das geht natürlich auch mit der Funktion sprintf sprintf("Auf vier Nachkommastellen gerundet, sieht pi so aus: %.4f",pi) # Mit einem Datum print(paste("Heute ist der",Sys.Date())) print(paste("Heute ist der",format(Sys.Date(),"%d.%m.%Y")))
LERNE DATA SCIENCE mit R
Ein Data Science Experte ist in der heutigen datengetriebenen Welt viel gefragt. Mit der entsprechenden Erfahrung kann man sich den gutbezahlten, interessanten Job aussuchen. In meinem Onlinekurs Data Science mit R lernst Du die Grundlagen.