2012-06-01 15 views
5

Ich habe eine große Menge von Daten, wo das Trennzeichen ein Backslash ist. Ich verarbeite es in R und ich habe eine harte Zeit zu finden, wie Sie die Zeichenfolge teilen, da der Backslash ein Metazeichen ist. Zum Beispiel würde eine Zeichenfolge wie folgt aussehen:strsplit in R mit einem Metazeichen

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

und ich möchte es entlang der \ Charakter spalten, aber wenn ich laufen die strsplit Befehl:

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

Wenn ich versuche, die "verwendet fixed“Option, es läuft nicht, weil es etwas nach dem Schrägstrich erwartet wird:

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

Leider kann ich nicht mit einem anderen Programm Vorprozess die Daten, da die Daten gener täglich durchgeführt.

Antwort

14

Code Ihre Linie ist (obwohl Sie es nicht sagen explizit):

strsplit(tempStr, "\\") 

und sollte

strsplit(tempStr, "\\\\") 

sein Dieses als „\\“ gelesen werden, die die regelmäßige Ausdruck wird als "\" verstanden.

+0

leider ist dies nicht funktioniert ... Ich bekomme nur die gleiche Saite zurück. Irgendwelche anderen Ideen? Vielen Dank. – newRUser

+2

Könnten Sie bitte ein in sich geschlossenes Beispiel geben (das heißt, es in R-Code bringen, damit wir es ausführen können?) –

+0

Aye, das gleiche Problem ... wenn ich \\\\ mache, werden alle Vorkommen doppelten Schrägstrichs entfernt. aber \\ erhält den obigen Fehler und \\ versucht, das folgende Anführungszeichen zu umgehen ... –

3

Ich vermute, dass Ihre Daten in irgendeiner Form vorliegen. Wenn dies der Fall ist, verwenden Sie read.table, geben Sie das Trennzeichen explizit an. Angenommen, Ihre Datei war:

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

dann diese in R zu lesen, verwenden Sie den Befehl:

read.table("file.txt", sep="\\") 
-1

Try this:

strsplit(tempStr, "\"") 
Verwandte Themen