49

我有一个整数,我想将其转换为 class Date。我假设我首先需要将其转换为字符串,但是如何?

我的尝试:

v <- 20081101
date <- as.Date(v, format("%Y%m%d"))

charToDate(x) 中的错误:字符串不是标准的明确格式

使用paste()有效,但这真的是进行转换的正确方法吗?

date <- as.Date(paste(v), format("%Y%m%d"))
date
[1] "2008-11-01"

class(date)
# [1] "Date"
4

3 回答 3

58

as.character()将是一般的方式,而不是使用paste()它的副作用

> v <- 20081101
> date <- as.Date(as.character(v), format = "%Y%m%d")
> date
[1] "2008-11-01"

(我认为这是一个简单的示例,如下所示:

v <- "20081101"

不可能吗?)

于 2010-11-05T08:27:50.613 回答
18

获得相同结果的另一种方法:

date <- strptime(v,format="%Y%m%d")
于 2012-06-08T02:14:34.580 回答
2

你可以使用ymdlubridate

lubridate::ymd(v)
#[1] "2008-11-01"

或者anytime::anydate

anytime::anydate(v)
#[1] "2008-11-01"
于 2020-07-12T10:01:00.800 回答