1

次のような文字列があります。

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"

で「2010-12-31+10」を「2011-01-10」に変換しようとしていstr1ます。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"

その理由は何ですか?

4

1 に答える 1

3

の第二引数はstr_replace_all文字列ではなく正規表現です。+したがって、regexps で特別な意味を持つような記号をエスケープする必要があります。

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 または、 の関数を使用しstringrて、通常の文字列としてパターンに一致させることができます。

R> str_replace_all(str1,fixed("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"
于 2013-10-04T09:17:08.587 に答える