5

区切り文字がバックスラッシュである大量のデータがあります。Rで処理していますが、バックスラッシュはメタキャラクターであるため、文字列を分割する方法を見つけるのに苦労しています。たとえば、文字列は次のようになります。

1128\0019\XA5\E2R\366\00=15

文字に沿って分割したいのです\が、strsplit コマンドを実行すると、次のようになります。

strsplit(tempStr, "\\")
Error in strsplit(tempStr, "\\") : 
  invalid regular expression '\', reason 'Trailing backslash'

「固定」オプションを使用しようとすると、バックスラッシュの後に何かが必要なため、実行されません。

strsplit(tempStr, "\", fixed = TRUE)

残念ながら、データは毎日生成されるため、別のプログラムでデータを前処理することはできません。

4

3 に答える 3

14

あなたのコード行は次のとおりです(明示的には言いませんが):

strsplit(tempStr, "\\")

そしてあるべきです

strsplit(tempStr, "\\\\")

これは "\\" として読み取られ、正規表現は "\" として理解します。

于 2012-06-01T04:36:42.820 に答える
3

あなたのデータは何らかのファイルにあると思われます。この場合はread.table、区切り文字を明示的に指定して使用します。たとえば、ファイルが次のようになっているとします。

a\b\c\d
e\f\g\h

次に、これを R に読み込むには、次のコマンドを使用します。

read.table("file.txt", sep="\\")
于 2012-06-01T08:52:39.920 に答える