我如何在r中的字符向量内添加空白?

  • 本文关键字:向量 添加 空白 字符 r gsub
  • 更新时间 :
  • 英文 :


我有一个字符日期序列("2018-09-032018-09-09"2018 - 09 - 102018 - 09 - 16".....),我会在第10位数字后添加一个空白。作为最终结果,我将获得以下"2018-09-03 2018-09-09";"2018-09-10 2018 - 09 - 16"…我猜gsub函数可以帮助,但我不知道如何实现它
你能帮我吗?

我们可以使用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"

我们可以使用sub捕获前10位数字,然后添加空格

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")

可以吗?

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"