是否可以在r中创建一个空的日期向量?如何创建日期的空向量?
我可以创造一个整数空载体,双打,逻辑值等:
> integer()
integer(0)
> double()
numeric(0)
> logical()
logical(0)
> length(integer())
[1] 0
但这个说法并不对日期的工作,作为date()
返回当前系统日期和时间。那么,我将如何创建一个日期的emtpy向量?
是否可以在r中创建一个空的日期向量?如何创建日期的空向量?
我可以创造一个整数空载体,双打,逻辑值等:
> integer()
integer(0)
> double()
numeric(0)
> logical()
logical(0)
> length(integer())
[1] 0
但这个说法并不对日期的工作,作为date()
返回当前系统日期和时间。那么,我将如何创建一个日期的emtpy向量?
只需添加一个类属性的长度0整数,它是一个日期(至少它会显示为一个,如果你有当解释为R-日期是有意义的值扩展它):
> 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")
在我的情况:'> as.Date(x = integer(0))'返回一个错误:'asDate.numeric(x = integer(0))中的错误:必须提供'origin'。我必须提供原点:'as.Date(x = integer(0),origin =“1970-01-01”)'工作! – PAC
这不是我演示的方法,它继续成功。 'as.Date(integer())'的行为似乎已经改变了。它现在返回您演示的错误。我无法在NEWS文件中找到解释这一变化的条目。 –
随着最新版本的R,你必须提供产地:
as.Date(x = integer(0), origin = "1970-01-01")
使用lubridate包,并决定您的预期格式是什么,你可以(如YYYY/MM/DD。)用途:
lubridate::ymd()
# or
lubridate::mdy()
等
检查[这里](http://stackoverflow.com/questions/10689055/create-an-empty-data-frame) – akrun
我不知道'date'函数可能来自哪里,但它并不是一个“基础”函数。 –