2012-01-30 34 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

相關問題