gpt4 book ai didi

R - 如何声明日期向量?

转载 作者:行者123 更新时间:2023-12-03 23:27:03 25 4
gpt4 key购买 nike

例如,我尝试了以下方法来创建一个长度为 5 的日期向量。没有工作:

date(5)
Date(5)
vector(5, mode = "Date" )

这有效,但想知道是否有捷径?
as.Date( numeric( 5 ) )

另外,我看到 mode( as.Date("2011-01-01") ) 是数字,我知道日期的基础数据结构是数字,但鉴于 vector() 只有模式和长度参数,它在我看来,在没有强制的情况下创建 Date 向量是不可能的?

编辑这也是一个解决方案,除了length = 0?
Date = function( length = 0 )
{
newDate = numeric( length )
class(newDate) = "Date"
return(newDate)
}

最佳答案

您可以使用序列,或者只是添加:

R> seq( as.Date("2011-07-01"), by=1, len=3)
[1] "2011-07-01" "2011-07-02" "2011-07-03"
R> as.Date("2011-07-01") + 0:2
[1] "2011-07-01" "2011-07-02" "2011-07-03"
R>

并且两者的工作方式相同,这很好地说明了为什么面向对象适合数据编程。

如您所见,日期有一个底层数字表示(整数表示自 Unix 时间开始以来的天数,也就是 1970 年 1 月 1 日),但它也有一个类属性,它使格式化、算术等...它利用 R 中的调度机制的方式。

编辑:出于同样的原因,您也可以从标准向量开始并将其转换为 Date目的:
R> x <- 1:3
R> class(x) <- "Date"
R> x
[1] "1970-01-02" "1970-01-03" "1970-01-04"
R>

关于R - 如何声明日期向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com