web-dev-qa-db-ja.com

gsubを使用して、Rの最初の空白の前にあるすべての文字列を削除します

私はこのようなデータフレームを持っています:

name         weight
r Apple         0.5
y pear          0.4
y cherry        0.1
g watermelon    5.0
pp grape        0.5
y Apple pear    0.4
...  ...

名前列の最初の空白の前にあるすべての文字を削除したいと思います。誰か私にお願いできますか?ありがとうございました!

11
cutebunny

これを試して:

sub(".*? ", "", D$name)

編集:

パターンは0回以上任意の文字を探しています(.*)最初のスペースまで、その後1つ以上の文字をキャプチャします((.+))その最初のスペースの後。 ?.*は「欲張り」ではなく「怠惰」になり、最初に見つかったスペースで停止します。だから、.*?は最初のスペースの前のすべてに一致し、スペースは最初に見つかったスペースに一致します。

19
Jota

Dがデータフレームの場合は、試してください

sub(".+? ", "", D$name)
7
Benjamin

データフレームが「df」と呼ばれているとしましょう

library(reshape2)    
df$name = colsplit(df$name," ", names = c("chuck","name"))[,2]
2
Veera