次のデータがあります。
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")
「:」が存在する場合は最初の「:」の前のテキストのみを保持し、「:」が存在しない場合は単語全体を保持する新しいベクトルを作成したいと考えています。
私は使用しようとしました:
temp=data.frame(matrix(unlist(str_split(temp,pattern=":",n=2)),
+ ncol=2, byrow=TRUE))
ただし、「:」がない場合は機能しません。
私はこの質問が非常に似ていることを知っています : R の特定の文字から文字列を切り捨てます。
sub("^[^.]*", "", x)
しかし、私は正規表現にあまり詳しくなく、その例を逆にして文字列の先頭だけを保持するのに苦労しました。