【发布时间】:2017-02-21 15:09:55
【问题描述】:
我在 R 中使用 sub 函数时遇到问题,我必须从一个字符创建一个 POSIXct 向量,我决定在使用 as.POSIXct 阅读它之前将其符合 ISO 标准。
我的字符串如下所示:
"01/01/2015 08:00"
我想要的字符串如下所示:
"2015-01-01 08:00"
这是我使用的代码:
s= gsub('^([0-9]{2})/([0-9]{2})/([0-9]{4})', '\3-\2-\1', s)
我得到的结果是这样的:
"\003-\002-\001 08:00"
当然,我可以简单地使用as.POSIXct 的参数来读取向量,但是我怎么可能得到这样的结果呢?我无法理解这一点。
【问题讨论】:
-
你需要在替换部分中双重转义:
gsub('^([0-9]{2})/([0-9]{2})/([0-9]{4})', '\\3-\\2-\\1', s)- 但除了这个“错字”更正之外,我同意在你的情况下最好使用as.POSIXct -
使用
as.POSIXct的参数比摆弄正则表达式要干净得多,恕我直言。 -
确实如此,但我已经习惯了正则表达式,所以我的第一个方法是使用它们,我不喜欢我不能在 R 上使用它们。我的问题实际上是全部关于字符串替换
标签: r