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

Ren*_*ger 11 r vector

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

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

> integer()
integer(0)
> double()
numeric(0)
> logical()
logical(0)
> length(integer())
[1] 0
Run Code Online (Sandbox Code Playgroud)

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

PAC*_*PAC 9

使用最新版本的R,您必须提供原点:

as.Date(x = integer(0), origin = "1970-01-01")
Run Code Online (Sandbox Code Playgroud)


42-*_*42- 8

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

>  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"
Run Code Online (Sandbox Code Playgroud)

输出as.Date恰好是一个字符值,因此第一个调用有点误导.

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


Dyl*_* S. 7

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

lubridate::ymd()
# or
lubridate::mdy()
Run Code Online (Sandbox Code Playgroud)

等等。