如何在 r 的字符向量中添加白色 space?

how can I add a white space within a characther vector in r?

我有一个字符日期序列(“2018-09-032018-09-09”“2018-09-102018-09-16”......)我会添加一个白色space 在第 10 个数字之后。作为最终结果,我将获得以下“2018-09-03 2018-09-09”“2018-09-10 2018-09-16”...... 我想 gsub 功能可以提供帮助,但我不知道如何实现它
你能帮帮我吗?

这个有用吗:

gsub('(.{10})(.*)','\1 \2' ,c("2018-09-032018-09-09", "2018-09-102018-09-16"))
[1] "2018-09-03 2018-09-09" "2018-09-10 2018-09-16"

我们可以使用sub获取前10位数字然后加上space

sub("^(.{10})(.*)", "\1 \2", dates)

-输出

[1] "2018-09-03 2018-09-09" "2018-09-10 2018-09-16"

注意:我们使用了 sub,这只是我指定开始 (^) 字符这一事实所必需的。

数据

dates <- c("2018-09-032018-09-09", "2018-09-102018-09-16")

我们可以将 str_extract_all 与此 '\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])' 正则表达式一起使用,该正则表达式适用于 YYYY-MM-DD 格式:

library(stringr)
unlist(str_extract_all(dates, '\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])'))

输出:

 "2018-09-03" "2018-09-09" "2018-09-10" "2018-09-16"