tengo los siguientes datos:truncar el final de una cadena en I después de un personaje que puede estar presente cero o más veces
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")
me gustaría crear un nuevo vector que retiene sólo el texto antes de la primero ":" en los casos donde ":" está presente, y la palabra completa cuando ":" no está presente.
me han tratado de usar:
temp=data.frame(matrix(unlist(str_split(temp,pattern=":",n=2)),
+ ncol=2, byrow=TRUE))
pero no funciona en los casos en que no hay ":"
Sé que esta pregunta es muy similar a: truncate string from a certain character in R, que utiliza :
sub("^[^.]*", "", x)
Pero no estoy muy familiarizado con las expresiones regulares y he tenido problemas para invertir ese ejemplo para retener solo el comienzo de la línea gramo.
¡Gracias por esto! y la explicación de la expresión regular –