我想在2008年1月1日至2010年12月31日之间创建大约1万个日期对象。我为此编写了代码,但实际上我想在2008年保留1-366天,因为2008-02-29(le年),我希望它们在366之后重新启动,然后在2009-01-01变为1。我可以这样做,因为只能为2008年,2009年和2010年创建,但这并不方便。我正在阅读有关lubridate
的信息,但无法弄清楚。我还可以过滤1到366,然后过滤367-731,但这也不会有效。有人知道更好的方法吗?
set.seed(123)
tim1=sample(365*3+1,10000,replace = TRUE) ### that plus 1 from feb 29 in 2008
dat1=as.Date(tim1,origin="2007-12-31") # then 1 will be 2008-01-01
您可以创建所有目标日期的向量,并从中进行采样。要创建矢量,存在seq.Date
,这是seq
类的对象的"Date"
方法。
start <- as.Date("2008-01-01")
end <- as.Date("2010-12-31")
set.seed(123)
dat1 <- sample(seq(start, end, by = "days"), 10000, TRUE)