2017-03-10 8 views
3

私は明らかに何かがありません 私はgrepingという用語が明らかにgreppedされている文字列にあるときgrepは0を返します:R:grepが0になったら0を返します(空白はチェックしていません)

この例では、私は、文字列xが文字列yにあるかどうかをチェックしています:

x 
[1] "c.3963+1G>T" 

y 
[1] "c.3963+1G>T" 

grep(x, y) 
integer(0) 

x == y 
[1] TRUE 

文字列が、私はベクトルにやったstrsplits一連のから作られました。 xが明らかにyであってもgrepが0を返す(そして、この例のように同等であるとさえ考えられる)この動作を見るいくつかの理由は何ですか?

答えて

4

この場合、完全一致です。だから、akrunによって答えに詳述するとfixed = TRUE

grep(x, y, fixed = TRUE) 
#[1] 1 
5

を使用しています。 grepの最初の引数は、パターン(fixed = TRUEがない場合)です。あなたの例では、xに2文字が含まれ、パターンとして使用すると特別な意味があります。 .は「何にもマッチする」という意味です。 +は、「前のパターンを1回以上一致させる」ことを意味します。したがって、これらの文字はgrepyと直接比較されていません。

==は、文字列の等価性をテストしていますが、これは異なっています。

関連する問題