是否可以在r中创建一个空的日期向量?
我可以创建一个整数,双精度,逻辑等的空向量:
> integer()
integer(0)
> double()
numeric(0)
> logical()
logical(0)
> length(integer())
[1] 0
Run Code Online (Sandbox Code Playgroud)
但是这个模因不适用于日期,因为date()返回当前的系统日期和时间.那么,我如何创建一个日期的emtpy向量?
使用最新版本的R,您必须提供原点:
as.Date(x = integer(0), origin = "1970-01-01")
Run Code Online (Sandbox Code Playgroud)
只需将一个类属性添加到长度为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)
使用 lubridate 包并决定您想要的格式(例如 yyyy/mm/dd),您可以使用:
lubridate::ymd()
# or
lubridate::mdy()
Run Code Online (Sandbox Code Playgroud)
等等。
| 归档时间: |
|
| 查看次数: |
8851 次 |
| 最近记录: |