【发布时间】:2015-08-24 15:51:53
【问题描述】:
我想在我的 python 代码中插入 R 中的一段代码。为此,我正在使用 rpy2。 R 代码涉及许多正则表达式,似乎 rpy2 没有正确处理它们,或者我没有对它们进行充分编码。
下面是一段代码的例子,一个单词和另一个不起作用:
1) 有效:一个非常简单的 removeStopWords 函数:
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) 它不起作用:删除前导和尾随空格的也是微不足道的功能:
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
我被 IPython “开除”了
我直接试过了:
import rpy2.rinterface as ri
exp = ri.parse('trim <- function (x) gsub("^\\s+|\\s+$", "", x)')
但是结果是一样的,Abort然后退出IPython
在这个阶段,我真的不知道该尝试什么。 R 代码非常大,因此将所有内容从 R 迁移到 python 需要一些时间……而且我宁愿不必做这样的事情。
非常感谢任何帮助!
提前感谢您的宝贵时间。
【问题讨论】: