2016-10-25 17 views
0

「私は」スペースの後の文字列である、各Groupに単語を抽出したいのは、私がRの文字列のサブセットを抽出していますか?

Group   Score 
Duck QuackDUC 0.343 
Ten TopTEN  0.198 
** -Men MaleMEN 0.350 
y -Rural AreaRU 0.888 
Maple TreeMAP 0.468 
Man NavyMN  0.150 

のようなデータフレームがあるとしましょう、とすべて大文字で2-3文字列の前に。つまり、結果は

Group Score 
Quack 0.343 
Top 0.198 
Male 0.350 
Area 0.888 
Tree 0.468 
Navy 0.150 

どのように抽出するのですか?

答えて

4

subを使用できます。 0個以上の文字とそれに続く1つ以上の文字とそれに続く1つ以上のスペース(\\s+)と一致し、キャプチャグループに続く大文字とアルファベット(つまりカッコ内には(...))を保持し、キャプチャの逆参照で置き換えますグループ(\\1)。

df1$Group <- sub(".*[A-Za-z]+\\s+([A-Z][a-z]+).*", "\\1", df1$Group) 
df1$Group 
#[1] "Quack" "Top" "Male" "Area" "Tree" "Navy" 
提供されたデータについては
+1

、 'サブ( " *([AZ] [AZ] +)。*"、 "\\ 1"、DF1 $グループ)は'あなたの答えはあるものの、また動作しているようですより完全な – etienne

関連する問題