R 删除列向量中的数字和点

R 删除列向量中的数字和点,r,R,我有一个列向量,很难对它进行规范化。看起来是这样的: X2015.11.03.15.00.00.1 X2015.11.03.15.00.00.2 X2015.11.03.15.00.00.13 X2015.11.03.15.00.00.14 X2015.11.03.15.00.00.14 X2015.11.03.16.00.00 X2015.11.03.16.00.00 X2015.11.03.17.00.00 我想要得到的是标准化的时间戳: 2015.11.03 15.00.00 2015

我有一个列向量,很难对它进行规范化。看起来是这样的:

X2015.11.03.15.00.00.1
X2015.11.03.15.00.00.2
X2015.11.03.15.00.00.13
X2015.11.03.15.00.00.14
X2015.11.03.15.00.00.14
X2015.11.03.16.00.00
X2015.11.03.16.00.00
X2015.11.03.17.00.00 
我想要得到的是标准化的时间戳:

2015.11.03 15.00.00
2015.11.03 15.00.00
2015.11.03 15.00.00
2015.11.03 15.00.00
2015.11.03 15.00.00
2015.11.03 16.00.00
2015.11.03 16.00.00
2015.11.03 17.00.00
到目前为止,我尝试了[Sub和gsub][1]的各种组合,但没有得到最终结果

#remove X in Timestamp
x <- gsub("\\X", "", x)
#put space between time date and time
x <- sub("\\s+$", "", gsub('(.{11})', '\\1 ', x))
剩下的怎么修?非常感谢您的帮助。

我们可以使用as.POSIXct使用自定义格式转换为日期时间,在我看来,这比使用正则表达式更好,因为输入本身就是日期时间值:

df$V2 <- as.POSIXct(df$V1, format = "X%Y.%m.%d.%H.%M.%S")
数据:


请尝试sub\\\[1-9]+$,x此选项用点修复最后一位数字,但不是此选项:2015.11.03。14.00.00.10
df$V2 <- as.POSIXct(df$V1, format = "X%Y.%m.%d.%H.%M.%S")
                       V1                  V2
1  X2015.11.03.15.00.00.1 2015-11-03 15:00:00
2  X2015.11.03.15.00.00.2 2015-11-03 15:00:00
3 X2015.11.03.15.00.00.13 2015-11-03 15:00:00
4 X2015.11.03.15.00.00.14 2015-11-03 15:00:00
5 X2015.11.03.15.00.00.14 2015-11-03 15:00:00
6    X2015.11.03.16.00.00 2015-11-03 16:00:00
7    X2015.11.03.16.00.00 2015-11-03 16:00:00
8    X2015.11.03.17.00.00 2015-11-03 17:00:00
df <- structure(list(V1 = structure(c(1L, 4L, 2L, 3L, 3L, 5L, 5L, 6L
), .Label = c("X2015.11.03.15.00.00.1", "X2015.11.03.15.00.00.13", 
"X2015.11.03.15.00.00.14", "X2015.11.03.15.00.00.2", "X2015.11.03.16.00.00", 
"X2015.11.03.17.00.00"), class = "factor")), class = "data.frame", row.names = c(NA, 
-8L))