2016-02-09 137 views
1

我正在嘗試創建30分鐘的時間間隔。我用與輸出下面的命令還示出:以30分鐘的時間間隔創建時間序列

ts = seq(as.POSIXct("2009-01-01 00:00"), as.POSIXct("2014-12-31 23:30"),by = "hour") 

"2010-02-21 12:00:00 EST" "2010-02-21 13:00:00 EST" "2010-02-21 14:00:00 EST" 

當我將其更改爲by ="min"它的變化是每一分鐘。

如何創建每隔30分鐘一次的時間序列?

+0

從'seq.Date':'SEQ(從,到,通過= 「30分鐘」)' –

回答

0

默認單位是秒。所以只需1800秒即可獲得30分鐘。

TS = SEQ(as.POSIXct( 「2009-01-01 00:00」),as.POSIXct( 「2014-12-31 23:30」),通過= 1800)

ts [1:20] [1]「2009-01-01 00:00:00 EST」「2009-01-01 00:30:00 EST」「2009-01-01 01:00:00 EST」「 2009-01-01 01:30:00 EST「」2009-01-01 02:00:00 EST「 [6]」2009-01-01 02:30:00 EST「」2009-01-01 03: 00:00 EST「」2009-01-01 03:30:00 EST「」2009-01-01 04:00:00 EST「」2009-01-01 04:30:00 EST「 [11]」2009 -01-01 05:00:00 EST「」2009-01-01 05:30:00 EST「」2009-01-01 06:00:00 EST「」2009-01-01 06:30:00 EST「 「2009-01-01 07:00:00 EST」 [16]「2009-01-01 07:30:00 EST」「2009-01-01 08:00:00 EST」「2009-01-01 08 :30:0 0 EST 「 」2009-01-01 09:00:00 EST「 」2009-01-01 09:30:00 EST「

+0

謝謝阿德里安但如何改變它到UTC而不是EST –

+0

您可以使用attr()函數。 attr(ts,「tzone」)< - 「UTC」 –

0

您可以在by參數指定分鐘,打發時間區」 UTC「,正如Adrian指出的那樣。檢查?seq.POSIXt約指定爲字符串的by參數的詳細信息:

的字符串,含有「秒」,「分鐘」,「小時」,「日」, 「DSTday」之一「周「,」月「,」季「或」年「。這可以有選擇地由 前面加一個(正數或負數)整數和一個空格,或者跟着 加「s」。

ts <- seq(as.POSIXct("2017-01-01", tz = "UTC"), 
    as.POSIXct("2017-01-02", tz = "UTC"), 
    by = "30 min") 
head(ts) 

輸出

[1] "2017-01-01 00:00:00 UTC" 
[2] "2017-01-01 00:30:00 UTC" 
[3] "2017-01-01 01:00:00 UTC" 
[4] "2017-01-01 01:30:00 UTC" 
[5] "2017-01-01 02:00:00 UTC" 
[6] "2017-01-01 02:30:00 UTC" 
相關問題