2017-07-28 33 views
1

文字列から最初の数字を抽出しようとしています。rのサブ文字列を含む文字列から最初の数字を抽出する方法

s <- '100 xx-50 xx xxxx' 

私はどのようにベースrのサブ文字列を抽出するために

str_extract(s, '\\d+') 
[1] "100" 

stringr

からstr_extractを使用できますか? 私が試した:

sub('(\\d+)\\s.', '\\1', s) 
[1] "100x-200 xx hello" 

私が間違って何をしたのですか?私はそれを理解できませんでした。 ありがとうございました。

答えて

2

我々は(一個の以上のスペースを一致させるためにsubを使用(\\s+)他の文字が続く(.*)とスペースの後に、OPのコードで

sub("\\s+.*", "", s) 
#[1] "100" 

"")空白に置き換えることができます\\s)には、.があります。これは任意の文字を意味し、文字列内の文字数が増えているため、文字列の文字と一致しません。私たちは、キャプチャグループの経路で

sub("^(\\d+)\\s.*", "\\1", s) 
#[1] "100" 

を予定している場合は代わりに、.*は、ゼロ以上の文字を意味し、また、それが一致した数字から開始しないように^は、文字列の先頭を指定するために使用されていることに注意してください弦の他の場所

+1

ありがとう!私は* – zesla

+0

@zeslaを逃しました。ありがとうございました。 [ここ](https://stackoverflow.com/help/someone-answers)もチェックすることができます。 – akrun

関連する問題