繁体   English   中英

如何创建一个空的日期向量?

[英]How do I create an empty vector of dates?

是否可以在 r 中创建一个空的日期向量?

我可以创建一个由整数、双精度数、逻辑数等组成的空向量:

> integer()
integer(0)
> double()
numeric(0)
> logical()
logical(0)
> length(integer())
[1] 0

但是这个模因不适用于日期,因为date()返回当前系统日期和时间。 那么,我将如何创建一个空的日期向量?

对于 R 的最新版本,您必须提供原点:

as.Date(x = integer(0), origin = "1970-01-01")

只需将一个类属性添加到一个长度为 0 的整数,它就是一个日期(至少,如果您使用解释为 R-Dates 时合理的值扩展它,它至少看起来是一个):

>  x <- integer(0)
> x
integer(0)
> class(x) <- "Date"
> x
character(0)
> class(x)
[1] "Date"
> y <- c(x, 1400)
> y
[1] "1973-11-01"

as.Date的输出恰好是一个字符值,所以第一次调用有点误导。

> as.Date(integer())
character(0)
> str( as.Date(integer()) )
Class 'Date'  num(0) 
> dput( as.Date(integer()) )
structure(numeric(0), class = "Date")

使用 lubridate 包并决定您想要的格式(例如 yyyy/mm/dd),您可以使用:

lubridate::ymd()
# or
lubridate::mdy()

等等。

这似乎有效并且相对于其他一些答案节省了一些击键:

> as.Date(character(0))
Date of length 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM