0

在 RI 中有一个字符串,如下所示

x <- c("20130603 00:00:03.102","20130703 00:01:03.103","20130804 00:03:03.104")

我想通过使用单个gsub命令(而不是使用substrand paste,但我有限regex的知识让我在弄清楚我需要做什么时感到沮丧:

y <- gsub([REGEX PATTERN TO MATCH],[REPLACEMENT PATTERN TO INSERT HYPHEN] ,x)

> y
[1] "2013-06-03 00:00:03.102" "2013-07-03 00:01:03.103" "2013-08-04 00:03:03.104"

在我的实际示例中,x 的长度为几百万,因此任何用于提高速度的微基准测试都会有所帮助。

与往常一样,我们将不胜感激任何帮助。

4

2 回答 2

4

以下应该有效:

gsub("(\\d{4})(\\d{2})(\\d{2})", "\\1-\\2-\\3", subject, perl=TRUE);
于 2013-08-28T08:34:56.253 回答
0

我实际上想出了与蒂姆完全相同的东西。如果您想要更紧凑的东西,请尝试使用stringr 包

library(stringr)
str_replace_all("(\d{4})(\d{2})(\d{2})", "$1-$2-$3")
于 2013-08-28T09:09:24.737 回答