5

文字列を含むデータセットにいくつかの文字列があります

\x96
\x92

その他。

Rでそれらをgrepする方法がわかりません。
使用してみました

pattern="\x96"
pattern="\\x96"
pattern="x96"

しかし、役に立たない。

特にRで、そのような文字を処理する特定の方法はありますか.


**更新**コメントの提案に従って、perl=TRUEgrepが機能するようにします

何が起こっているのかをしっかりと説明できる人はいますか?

関連する場合のセッション情報

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C         LC_TIME=C            LC_COLLATE=C         LC_MONETARY=C        LC_MESSAGES=C        LC_PAPER=C           LC_NAME=C            LC_ADDRESS=C        
[10] LC_TELEPHONE=C       LC_MEASUREMENT=C     LC_IDENTIFICATION=C 

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_0.9.3    RMySQL_0.9-3     DBI_0.2-5        stringr_0.6.1    data.table_1.8.6
4

1 に答える 1

2

R は、いくつかの異なるタイプの正規表現をサポートしています。デフォルトは POSIX ERE (拡張正規表現) で、これは grep およびその他の標準 posix ツールのデフォルトです。しかし、R の POSIX ERE エンジンは現在、16 進文字コードのエスケープをサポートしていません。

バックスラッシュを使用した非メタ文字のエスケープは、実装に依存します。現在の実装では、\a は BEL、\e は ESC、\f は FF、\n は LF、\r は CR、\t は TAB として解釈されます。(これらは、R のパーサーによってリテラル文字列として解釈されることに注意してください。)

R で使用される正規表現を参照してください。

perl=TRUE を設定すると、R が正規表現を処理するために使用するエンジンが PCRE ( perl 互換正規表現) に変更されます。PCRE はエスケープされた 16 進文字コードをサポートしています。ほら、正規表現が機能するようになりました。

于 2013-02-18T07:47:56.173 に答える