Ersetzen einzelner backslash in R

Ich habe ein string der sieht so aus:

str<-"a\f\r"

Ich versuche zum entfernen der backslashes, aber nichts funktioniert:

gsub("\","",str, fixed=TRUE)
gsub("\\","",str)
gsub("(\)","",str)
gsub("([\])","",str)

...im Grunde alle Variationen, die Sie sich vorstellen können. Ich habe sogar versucht die string_replace_all Funktion. KEINE HILFE??

Ich bin mit der R-version 3.1.1; Mac OS x 10.7; die dput für einen einzelnen string in meine vector von strings gibt:

dput(line)
"ud83d\ude21\ud83d\udd2b"

Ich importierte die Datei mit
readLines vom standard
.txt - Datei. Der Inhalt der Datei sieht etwa so aus:

got an engineer booked for this afternoon \ud83d\udc4d all now hopefully sorted\ud83d\ude0a I m going to go insane ud83d\ude21\ud83d\udd2b in utf8towcs …

Dank.

  • im Zusammenhang stackoverflow.com/questions/11806501/backslash-in-r-string
  • es ist nicht ganz das gleiche problem. Ich habe gearbeitet der Umgang mit doppelten Schrägstrichen, aber ich konnte nicht finden Lösungen für die einzelnen Schrägstriche an alle.
  • str<-"this\is\my\string" der nicht gelesen werden kann in R, weil \i, \m und \s gespeichert sind Buchstaben, regex, so dass Ihr Beispiel nicht reproduzierbar (und verwirrend). Sie ändern könnte, um so etwas wie str <- "a\f\r"
  • okay werde ich tun
  • Nicht enthalten keine backslashes entweder. Sie müssen Ihnen zu entkommen, wenn Sie Sie die Eingabe von der Tastatur: str <- "a\\f\\r"
  • Habe ich gelöscht meine Antwort die angesprochen, die original-version der Frage.
  • scheint, wie die Dritte genau die gleiche Antwort war einfach nur gepostet...
  • Ich bin mir nicht sicher über das edit zu dem post. Ich denke, wir sollten es lassen, um die OP zu klären, ob es "dies\\ist\\eigene\\string" oder "a\f\r", wie David vorgeschlagen.
  • Ich habe rollte es zurück zum original.
  • wie von David vorgeschlagen, "a\f\r" all I tun wollen ist, entfernen Sie die Stopfen, einfache umgekehrte Schrägstriche
  • Sie haben, vorsichtig zu sein. Wenn Sie möchten, um eine Zeichenfolge mit einem backslash zu können, geben Sie zwei umgekehrte Schrägstriche, da \ ein Sonderzeichen in R-parser. Zum Beispiel str <- "a\\f\\r" enthält den string 'a\f\r' (zwei einzelne umgekehrte Schrägstriche). Umgekehrt str <- "a\f\r" enthält keine backslashes: es hat 3 Zeichen, a, \f und \r.
  • aber ich glaube nicht, dass ein string, der enthalten backslashes in den ersten Platz. Ich habe gerade einen verhunzten text-dataset, das ich bin versucht zu bereinigen, und es hat alle sords seltsamen Zeichen drin. Ich nehme ihn gibt es KEINEN Weg, um mit einzelnen backslashes dann?
  • Siehe meine bearbeitete Antwort.
  • Es klingt wie Ihr problem ist eigentlich nicht das umgekehrte, aber entstellten text-Codierung. Wenn R auf einen Charakter es nicht weiß, wie Sie zu drucken, werden Sie sehen, viele backslashes über den Ort, die Vertretung hex-codes. Post eine tatsächliche Stichprobe von code und Daten, die Verwendung von dput.
  • okay, aber was ist dput? sorry
  • Sehen ?dput. Es gibt etwas, dass Sie können Ausschneiden und einfügen in das Bearbeiten-Fenster hier auf StackOverflow, wird zeigen, dass R die interne Darstellung Ihrer Daten.
  • dput(line) gibt "ud83d\ude21\ud83d\udd2b", wo die Linie ist der name von meinem string
  • Setzen Sie, dass in Ihrer Frage, zusammen mit dem code, den Sie verwenden, die Datei zu Lesen und die OS, die Sie verwenden. Jeder \uXXXX repräsentiert ein Unicode-Zeichen, die R nicht wissen, wie zu handhaben Ihre locale/Codierung.
  • vielen Dank, fertig!
  • Können Sie auch ein fragment der Datei, die Sie gerade Lesen, und den code, den Sie verwenden, um es zu Lesen mit?
  • Es scheint, wie Sie haben viele gebberish gibt, versuchen gsub("[^A-Za-z0-9]", "", "ud83d\ude21\ud83d\udd2b") vielleicht?
  • dort gehen Sie. Dank
  • es arbeitet david aber nur der erste Teil der Zeichenkette zurückgegeben "ud83d"
  • utf8towcs... du bist nicht die Arbeit mit funky Fremdsprachen sind Sie?
  • Ja, das sieht aus wie ein encoding-Problem zu mir.
  • Kannst du die Datei hochladen irgendwo? Es sieht aus wie, was-editor, du Klebst es von bereits eingeschaltet hat, die seltsamen Zeichen in \xxxx form.
  • haha Neeein Ihr alle Englisch 🙂 eigentlich david ' s Idee, zu versuchen zu ersetzen, alles, was neben den standard-Alphabete hat das Potenzial, zu arbeiten, aber für jetzt seine nicht zu tun genau das, was sein soll zu tun
  • Richtig, das ist, weil jeder \uXXXX ist tatsächlich ein Zeichen.
  • ein Zeichen? oh ja, jetzt sehe ich... ich denke, das problem ist dann gelöst, ich verwende gsub("[^A-Za-z0-9]", "", "ud83d\ude21\ud83d\udd2b") vielen Dank, Hong weißt du, wie mark einen Kommentar als Antwort? so dass vielleicht andere es nützlich finden?
  • Wie ich schon sagte - es ist ein encoding-Problem 😉
  • ja ist es, bin froh, dass das jetzt vorbei waren, für die letzten 6 Stunden. vielen Dank an alle, die beigetragen haben

InformationsquelleAutor Tavi | 2014-08-21
Schreibe einen Kommentar