【问题标题】:How do I convert my date and time stamp in R to date only stamp? [duplicate]如何将 R 中的日期和时间戳转换为仅日期戳? [复制]
【发布时间】:2016-05-17 14:39:17
【问题描述】:

我是 R 新手。我有一个大型数据集,其中一列包含时间戳。列内容的格式是例如2015 年 3 月 7 日星期六 18:38:01 EST。 现在我想在数据框中创建一个仅包含日期的附加列。我在第二个专栏中关心的是例如2015 年 3 月 7 日。我尝试了其他类似的问题,但他们正在解决不同的格式。提前致谢!

编辑

问题已解决。最好的方法是将其转换为 POSIXct 对象,然后去掉它的时间或日期。

【问题讨论】:

  • @DirkEddelbuettel,虽然如果这个问题是重复的,我不会感到惊讶,但链接的答案似乎没有涵盖 OP 用例中的格式问题范围。
  • 没关系。我们在strptime 上有 1600 个问题。选一个。任何一个。

标签: r date time timestamp


【解决方案1】:

这适用于您的示例。让我知道它是否适用于您的完整数据集:

x = "Sat Mar 07 18:38:01 EST 2015" 

as.Date(x, format="%a %b %d %H:%M:%S EST %Y")

[1] "2015-03-07"

有关用于解析日期和时间的所有格式代码的更多信息,请参阅?strptime

更新:根据您的评论,将其添加到您的数据集中:如果您的数据框称为 df 并且您的原始列是 timestamp 那么...

df$date = as.Date(df$timestamp, format="%a %b %d %H:%M:%S EST %Y")

【讨论】:

    【解决方案2】:

    您可以同时使用formatas.Datestrptime

    x <- 'Sat Mar 07 18:38:01 EST 2015'
    
    ## Convert to date
    y <- as.Date(strptime(x, '%a %b %d %H:%M:%S EST %Y'))
    y
    ##[1] "2015-03-07"
    
    ## Change format
    format(y, '%b %d %Y')
    ##[1] "Mar 07 2015"
    
    ## Do the whole thing in one line
    format(as.Date(strptime(x, '%a %b %d %H:%M:%S EST %Y')), "%b %d %Y")
    

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多