【问题标题】:R incorrect value of date functionR日期函数的值不正确
【发布时间】:2014-12-31 08:31:10
【问题描述】:

我正在尝试在 R 中使用 as.Date。

我正在使用命令:

as.Date("65-05-14", "%y-%m-%d")

我明白了:

"2065-05-14"

有没有办法让它显示 1965 年?还是我需要将所有内容重新编码为长格式 - 例如添加 1900 作为数字?

谢谢!

【问题讨论】:

  • 试试format(as.Date("65-05-14", "%y-%m-%d"), "19%y-%m-%d")
  • @KFB,我假设这来自stackoverflow.com/q/9508747/1270695.... 是否应该将其作为这些问题之一的副本关闭?
  • 尝试使用POSIXlt 类,例如Date <- as.POSIXlt(as.Date("65-05-14", "%y-%m-%d")) ; Date$year <- Date$year - 100L。也应该适用于整个向量。
  • @user1357015,似乎阿南达提供的链接可以回答您的问题。看看吧。

标签: r date


【解决方案1】:

我在链接的问题中没有看到这个简单的解决方案,所以我也在这里添加它。

在基础 R 中,您可以简单地使用提供 year 属性的 as.POSIXlt 类。然后,您可以简单地减少 100 年。

假设这是您的日期向量

(Date <- c("65-05-14", "15-05-14", "25-05-14", "34-05-14"))
## [1] "65-05-14" "15-05-14" "25-05-14" "34-05-14"

你可以这样做

Date <- as.POSIXlt(Date, format = "%y-%m-%d")
Date$year <- Date$year - 100L
Date # Alternatively, you could also do `as.Date(Date)`
## [1] "1965-05-14 IDT" "1915-05-14 IDT" "1925-05-14 IDT" "1934-05-14 IDT"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多