R 如何创建日期的空向量?

R 如何创建日期的空向量?,r,vector,R,Vector,是否可以在r中创建日期的空向量 我可以创建整数、双精度、逻辑等的空向量: > integer() integer(0) > double() numeric(0) > logical() logical(0) > length(integer()) [1] 0 但是这个模因不适用于日期,因为date()返回当前系统日期和时间。那么,我该如何创建日期的emtpy向量呢?只需向长度为0的整数添加一个class属性,它就是一个日期(如果您使用解释为R-dates时合理的值对其

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

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

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

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

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


对于R的最新版本,您必须提供源代码:

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

使用lubridate软件包并决定您的预期格式(例如yyyy/mm/dd),您可以使用:

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

等等。

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

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


在我的案例中检查:
>as.Date(x=integer(0))
返回一个错误:
as.Date.numeric(x=integer(0))中的错误:
必须提供“origin”
。我必须提供origin:
as.Date(x=integer(0),origin=“1970-01-01”)
有效!这不是我展示的方法,它继续成功。
as.Date(integer())
的行为似乎已更改。它现在返回您演示的错误。我在新闻文件中找不到解释这一变化的条目。
lubridate::ymd()
# or
lubridate::mdy()
> as.Date(character(0))
Date of length 0