2012-01-30 30 views
2

我可以用下面的代码创建所需的日期的序列:自动创建具有不同的起始日期日期序列中的R

DateTwoWeeks1 <- seq(as.Date("2010/8/6"), as.Date("2011/8/5"), by = "2 weeks") 
DateTwoWeeks2 <- seq(as.Date("2010/8/7"), as.Date("2011/8/5"), by = "2 weeks") 
DateTwoWeeks3 <- seq(as.Date("2010/8/8"), as.Date("2011/8/5"), by = "2 weeks") 

然而,我想对14个不同的起始日期,自动化的时间序列的创建。我想有一个时间系列从2010年8月6日开始,下一个系列从7日开始,直到2010年8月19日。

我该如何自动化?我试了一下使用“粘贴”功能,但我不能让下面的代码工作:

for (i in 6:19){ 
TimeTwoWeeks[i] <- seq(as.Date(paste("2010/8/", i)), as.Date("2011/8/5"), by = "2 weeks") 
} 

任何直接的帮助或联系到其他网站/职位是极大的赞赏。

回答

5

在这里你去:

TimeTwoWeeks <- lapply(as.Date("2010/8/6") + 0:13, 
         function(X) seq(X, as.Date("2011/8/5"), by = "2 weeks")) 
+0

您可以将lapply调用简化为lapply(as.Date('2010-08-06')+ 0:13,seq,as.Date('2011/08/05') ,'2周') – Ramnath 2012-01-30 19:41:54

1

如果你想创建时间序列,你可以调整为列表如下:

TimeTwoWeeks <- list() 

for (i in 6:19){ 
TimeTwoWeeks[[i-5]] <- seq(as.Date(paste("2010/8/", i)), as.Date("2011/8/5"), by = "2 weeks") 
} 
+1

你可能想索引用'I-5名单'以避免列表开始的5个NULL列表元素。 – 2012-01-30 16:26:10

+0

谢谢你帮助我。您的所有建议都非常有用 – Strohmi 2012-02-09 14:31:18

相关问题