Rpy2 Fehler: "unerkanntes Escape in Zeichenfolge"

Ich habe ein Stück Code in R, das ich gerne in meinen Python-Code einfügen möchte. Zu diesem ziel benutze ich rpy2. Der R-Code beinhaltet viele reguläre Ausdrücke und es scheint, dass rpy2 nicht ordnungsgemäß behandelt oder vielleicht bin ich nicht kodieren sie adäquat.

Hier ist ein Beispiel für ein Stück Code, dass Worte und andere, die nicht funktioniert:

1) Es funktioniert : Eine sehr triviale removeStopWords-Funktion:

import rpy2.robjects as robjects from rpy2.robjects.packages import importr robjects.r(''' library(data.table) library(tm) removeStopWords <- function(x) gsub(" ", " ", removeWords(x, stopwords("english"))) ''') In [4]: r_f = robjects.r['removeStopWords'] In [5]: r_f('I want to dance')[0] Out[5]: 'I want dance' 

2) es funktioniert nicht : eine auch triviale Funktion, um führende und nachgestellte Leerzeichen zu entfernen:

 robjects.r(''' library(data.table) library(tm) trim <- function (x) gsub("^\\s+|\\s+$", "", x) ''') Error: '\s' is an unrecognized escape in character string starting ""^\s" p = rinterface.parse(string) Abort 

Und ich bin von IPython "vertrieben"

Ich habe es direkt ausprobiert

 import rpy2.rinterface as ri exp = ri.parse('trim <- function (x) gsub("^\\s+|\\s+$", "", x)') 

Aber das Ergebnis ist das gleiche, Abort und dann aus IPython

In diesem Stadium weiß ich nicht wirklich was zu versuchen Der R-Code ist ziemlich groß und bewegt sich alle von R bis python würde mir etwas Zeit nehmen … und ich würde es lieber nicht so etwas machen wollen.

Jede Hilfe wird sehr geschätzt!

Vielen Dank im Voraus für Ihre Zeit.

One Solution collect form web for “Rpy2 Fehler: "unerkanntes Escape in Zeichenfolge"”

Wenn du \\ in einer Zeichenfolge in Python schreibst, wird es als \ gespeichert, da \ ein Escaping-Zeichen ist. Wenn also R den Code ausführt, sieht er "^\s+|\s+$" . Aber es ist auch und entkommender Charakter in R und \s nicht als irgendein entkommener Charakter erkannt.

Wenn du willst, dass du "^\\s+|\\s+$" "^\\\\s+|\\\\s+$" , musst du in Python ( "^\\\\s+|\\\\s+$" doppelte Anzahl von Backslashs) "^\\\\s+|\\\\s+$" schreiben.

  • Aufspalten und Verketten von Dataframes in Python-Pandas für das Plotten mit rpy2
  • Bizzarre Problem versucht, Rpy2 2.1.9 Arbeit mit R 2.12.1, mit Python 2.6 unter Windows XP - Rpy kann nicht finden, die R.dll?
  • Python rpy2 und quantmod Beispiele
  • So erstellen Sie einen leeren R-Vektor, um neue Elemente hinzuzufügen
  • Installationsproblem: "python setup.py egg_info" fehlgeschlagen mit Fehlercode 1
  • Rpy2-Fehler wac-a-mol: R_USER nicht definiert
  • Migration einer logistischen Regression von R nach rpy2
  • Rpy2 importiere externe R-Datei
  • LD_LIBRARY_PATH-Präzision und Schwierigkeiten beim Kompilieren
  • Wie können Rpy2, Pyrserve und PypeR vergleichen?
  • Konvertieren von Pythonobjekten für rpy2
  • Python ist die beste Programmiersprache der Welt.