gpt4 book ai didi

python - rpy2 错误 : "unrecognized escape in character string"

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:22 25 4
gpt4 key购买 nike

我在 R 中有一大块代码,我想将其插入到我的 python 代码中。为此,我正在使用 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 会花费我一些时间……而且我宁愿不必做这样的事情。

非常感谢任何帮助!

提前感谢您的宝贵时间。

最佳答案

当您在 Python 的字符串中写入 \\ 时,它存储为 \ 因为 \ 是一个转义字符。因此,当 R 执行代码时,它会看到 "^\s+|\s+$"。但是 \ 也是 R 中的转义字符,而 \s 不被识别为任何转义字符。

如果你想让R接收"^\\s+|\\s+$",你需要写成"^\\\\s+|\\\\s+$" 在 Python 中(反斜杠数量的两倍)。

关于python - rpy2 错误 : "unrecognized escape in character string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com