5

为这个简单的问题道歉,但我找不到此类日期的帮助。

2012 年 4 月 5 日保存为数字“20120405”

如何将这些值的向量转换为可用日期?

4

4 回答 4

5

你只需要这个as.Date功能:

R> x = "20120405"
R> as.Date(x, "%Y%m%d")
[1] "2012-04-05"

查看帮助文件:?as.Date,但本质上

  • %Y表示 2012 形式的年份,%y用于12.
  • %m是月份。
  • %d那天。

如果您的日期有分隔符,例如 2012-04-05,则使用类似:%Y-%m-%d. 或者,您可以使用:

R> strptime(x, "%Y%m%d")
[1] "2012-04-05"

特别是,您可以将日期向量传递给这些函数,因此:

R> y = c("20120405", "20121212")
R> as.Date(y, "%Y%m%d")
[1] "2012-04-05" "2012-12-12"
于 2012-04-05T08:36:01.137 回答
5

像这样,

(foo <- as.Date("20120405", "%Y%m%d"))
# "2012-04-05"

也许你想把format月份打印出来

format(foo, "%Y %b %d")
# "2012 Apr 05"

你可以看看这个页面

于 2012-04-05T08:36:29.717 回答
3

strptime您可以将其转换为类POSIXlt,并as.Date可以Date使用格式将其转换为类"%Y%m%d"

strptime( "20120405",format="%Y%m%d")
[1] "2012-04-05"

as.Date( "20120405",format="%Y%m%d")
[1] "2012-04-05"

编辑:

如果您有 character"20120405"或 numeric ,还不是很清楚20120405。在后一种情况下,您必须先转换为字符as.character(20120405)

于 2012-04-05T08:36:31.427 回答
2

你也可以使用这个lubridate包:

library(lubridate)  
ymd("20120405")
于 2012-04-05T09:13:54.850 回答