私はこのようなデータフレームを持っています:
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
... ...
名前列の最初の空白の前にあるすべての文字を削除したいと思います。誰か私にお願いできますか?ありがとうございました!
これを試して:
sub(".*? ", "", D$name)
パターンは0回以上任意の文字を探しています(.*
)最初のスペースまで、その後1つ以上の文字をキャプチャします((.+)
)その最初のスペースの後。 ?
後.*
は「欲張り」ではなく「怠惰」になり、最初に見つかったスペースで停止します。だから、.*?
は最初のスペースの前のすべてに一致し、スペースは最初に見つかったスペースに一致します。
D
がデータフレームの場合は、試してください
sub(".+? ", "", D$name)
データフレームが「df」と呼ばれているとしましょう
library(reshape2)
df$name = colsplit(df$name," ", names = c("chuck","name"))[,2]