Abschneiden des Endes einer Zeichenfolge in R nach einem Zeichen, das null oder mehrmals vorhanden sein kann
Ich habe folgende Daten:
temp<-c("AIR BAGS:FRONTAL" ,"SERVICE BRAKES HYDRAULIC:ANTILOCK",
"PARKING BRAKE:CONVENTIONAL",
"SEATS:FRONT ASSEMBLY:POWER ADJUST",
"POWER TRAIN:AUTOMATIC TRANSMISSION",
"SUSPENSION",
"ENGINE AND ENGINE COOLING:ENGINE",
"SERVICE BRAKES HYDRAULIC:ANTILOCK",
"SUSPENSION:FRONT",
"ENGINE AND ENGINE COOLING:ENGINE",
"VISIBILITY:WINDSHIELD WIPER/WASHER:LINKAGES")
Ich möchte einen neuen Vektor erstellen, der nur den Text vor dem ersten ":" enthält, wenn ein ":" vorhanden ist, und das ganze Wort, wenn ":" nicht vorhanden ist.
Ich habe versucht zu verwenden:
temp=data.frame(matrix(unlist(str_split(temp,pattern=":",n=2)),
+ ncol=2, byrow=TRUE))
aber es funktioniert nicht in den Fällen, in denen es kein ":" gibt
Ich weiß, dass diese Frage sehr ähnlich ist:Zeichenkette von einem bestimmten Zeichen in R abschneiden, die verwendeten:
sub("^[^.]*", "", x)
Aber ich bin mit regulären Ausdrücken nicht sehr vertraut und habe mich bemüht, dieses Beispiel umzukehren, um nur den Anfang der Zeichenfolge beizubehalten.