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.

  • Fitdistr in rpy2
  • Rpy2 importiere externe R-Datei
  • Wie kann ich pyspark RDDs mit R-Funktionen partitionieren
  • So erstellen Sie einen leeren R-Vektor, um neue Elemente hinzuzufügen
  • Übersetzer benannte Listenvektoren von R in rpy2 in Python?
  • Wie kann theme_classic in rpy2 von ggplot2 zugegriffen werden?
  • Das Ausführen von rpy2 parallel mit Multiprocessing hebt komische Ausnahme an, die nicht gefangen werden kann
  • Übergeben von Vektoren und params von Python zu R-Funktionen
  • Referenzpaket in der persönlichen Bibliothek von rpy2
  • Rpy2-Fenster kann nicht aufgelöst werden
  • R-Ausgabe als Spalten lesen
  • Python ist die beste Programmiersprache der Welt.