【问题标题】:Adding characters within strings in an R dataframe column在 R 数据框列的字符串中添加字符
【发布时间】:2021-05-28 15:49:58
【问题描述】:

这是我的数据框的第一行(带有列名):

site, date, value
TEES, 20000314, 315

如您所见,日期没有分隔符(- 或 /),所以我不能使用 as.Date。因此,我需要这样的东西:

TEES, 2000-03-14, 315

我该怎么做?大概是sub

【问题讨论】:

    标签: r date


    【解决方案1】:

    这行得通吗:

    as.Date(gsub('(\\d{4})(\\d{2})(\\d{2})','\\1-\\2-\\3',df$date))
    [1] "2000-03-14"
    

    数据:

    df
      site     date value
    1 TEES 20000314   315
    

    【讨论】:

      【解决方案2】:

      您可以使用 lubridate 包中的 ymd 函数。这将自动添加“-”来分隔 YYYY-MM-DD 并将其转换为 Date

      library(lubridate)
      
      ymd(df$date)
      
      # "2000-03-14"
      

      【讨论】:

        【解决方案3】:

        你可以使用as.Date你只需要指定tryFormats参数:

        as.Date("20000314", tryFormats = c("%Y%m%d"))
        [1] "2000-03-14"
        

        默认是尝试这些格式:c("%Y-%m-%d", "%Y/%m/%d"),它与您当前的结构不匹配,因此您必须告诉它如何读取您的结构。

        【讨论】:

          【解决方案4】:

          我们可以从anytime使用anydate

          library(anytime)
          anydate("20000314")
          #[1] "2000-03-14"
          

          【讨论】:

            猜你喜欢
            • 2016-01-01
            • 2020-05-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-01
            • 2016-10-22
            相关资源
            最近更新 更多