我有一个这样的字符串:
str1 <- "get all securities in portfolio port1 on date 2010-12-31 where field value of Close on 2010-12-31+10 less than 2000"
我想在str1
中将“2010-12-31 + 10”转换为“2011-01-10”。
我尝试了str_replace_all
包的stringr
方法
但我没有得到输出。
> str_replace_all(str1,"2010-12-31+10","2011-01-10")
[1] "get all securities in portfolio port1 on date 2010-12-31 where field value of Close on 2010-12-31+10 less than 2000"
这是什么原因?
答案 0 :(得分:3)
str_replace_all
的第二个参数不是字符串而是正则表达式。因此,您必须转义在regexp中具有特殊含义的+
等符号:
R> str_replace_all(str1,"2010-12-31\\+10","2011-01-10")
[1] "get all securities in portfolio port1 on date 2010-12-31 where field value of Close on 2011-01-10 less than 2000"
或者您可以使用fixed
的{{1}}函数使其与您的模式匹配为常规字符串:
stringr