Obcinanie końca łańcucha w R po znaku, który może być obecny zero lub więcej razy
Mam następujące dane:
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")
Chciałbym stworzyć nowy wektor, który zachowuje tylko tekst przed pierwszym „:” w przypadkach, gdy występuje „:”, a całe słowo, gdy „:” nie jest obecne.
Próbowałem użyć:
temp=data.frame(matrix(unlist(str_split(temp,pattern=":",n=2)),
+ ncol=2, byrow=TRUE))
ale nie działa w przypadkach, w których nie ma „:”
Wiem, że to pytanie jest bardzo podobne do:obetnij ciąg od pewnego znaku w R, który używał:
sub("^[^.]*", "", x)
Ale nie jestem zbyt dobrze zaznajomiony z wyrażeniami regularnymi i usiłowałem odwrócić ten przykład, aby zachować tylko początek ciągu.