将整数转换为类日期

Convert integer to class Date

提问人:Elzo Valugi 提问时间:11/5/2010 最后编辑:HenrikElzo Valugi 更新时间:7/12/2020 访问量:109996

问:

我有一个整数,我想将其转换为类。我假设我首先需要将其转换为字符串,但是如何转换呢?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"
日期 R-常见问题

评论


答:

59赞 Gavin Simpson 11/5/2010 #1

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

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

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

v <- "20081101"

不可能吗?

评论

1赞 Gavin Simpson 11/19/2015
@DavidArenburg我想我有一个错别字,因为我从来没有,一次也没有使用过我上面显示的方式。as.Date
19赞 Vivi 6/8/2012 #2

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

date <- strptime(v,format="%Y%m%d")

评论

3赞 Ben Bolker 6/8/2012
有趣。我没有意识到这会自动强制/处理数值......strptime
3赞 Ronak Shah 7/12/2020 #3

您可以从ymdlubridate

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

anytime::anydate

anytime::anydate(v)
#[1] "2008-11-01"