问题描述
我在R脚本中有一个正则表达式,如果我通过ctrl-Enter运行代码,则可以很好地运行,但是如果我通过单击“源”来运行脚本,则会产生以下错误。产生的错误是:
> df <- df %>%
+ mutate(date = ymd(date_str)) %>%
+ mutate(bfr = str_match(figure,'(.*?)([\\d]{1,2})([\\"\\-\\+])?(.*?)?(MS|AW|aw|GB|FR|BRZ ..." ... [TruncATED]
Error in stri_detect_regex(string,pattern,negate = negate,opts_regex = opts(pattern)) :
Syntax error in regexp pattern. (U_REGEX_RULE_Syntax)
问题代码行和正则表达式为:
mutate(b = str_match(figure,2})([\\+\\-\\"])?(.*?)?(MS|AW|aw|GB|FR|BRZ|ITY|GER|JAP|IRE|\\d\\d\\s?)([A-Za-z\\s]{2})?(\\s?\\d+|[a-zA-Z1234]{3})?')[,2])
我检查了regex101中的正则表达式,它工作正常。我通过tidyverse软件包使用了Stringr。
任何人都可以帮助我弄清楚语法错误是什么,以及如果使用ctrl-Enter运行该代码为何起作用。
这是我regex101测试的链接,您可以在其中查看一些示例数据。
https://regex101.com/r/okJ0FO/1
library(dplyr)
library(lubridate)
library(stringr)
df <- data.frame(
date_str = paste(2020,1:12,1,sep="-"),figure = c("1930 DE19","25+ YMSAiDDk","32 v[MSAi19","G..25- Y]40Ai 3",".35\" vtfMSAQ 6","..33- V40AQ10",".28+ Y40AQ18","g'21+ v25AQ19","19+30 BE 3","r.34- VQ40BE16","^=21-40 BE28","15\" vw25BE23"
)
)
df %>%
mutate(date = ymd(date_str)) %>%
mutate(b = str_match(figure,2])
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)