【问题标题】:how can I add a white space within a characther vector in r? [closed]如何在 r 的字符向量中添加空格? [关闭]
【发布时间】:2021-10-18 17:52:57
【问题描述】:

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

【问题讨论】:

    标签: r gsub


    【解决方案1】:

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

    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"
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        这行得通吗:

        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"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-13
          • 2020-08-26
          • 2018-02-04
          • 1970-01-01
          • 2022-07-21
          • 1970-01-01
          相关资源
          最近更新 更多