日期我有每天頻率分別建立時間序列對象:獲取的時間序列對象
my.timeseries= ts(data= 1:10, start= c(2014,1,1), frequency = 365.25)
我怎樣才能拿回日期從這個時間序列對象POSIXct矢量("2014-01-01 UTC"
......)?
日期我有每天頻率分別建立時間序列對象:獲取的時間序列對象
my.timeseries= ts(data= 1:10, start= c(2014,1,1), frequency = 365.25)
我怎樣才能拿回日期從這個時間序列對象POSIXct矢量("2014-01-01 UTC"
......)?
這裏有一個潛在的方法。我不確定是否應該這樣做,但它似乎工作。
與您現有的時間序列,嘗試
p <- paste(attr(my.timeseries, "tsp")[1], my.timeseries)
as.POSIXct(as.Date(p, "%Y %j"))
# [1] "2014-01-01 UTC" "2014-01-02 UTC" "2014-01-03 UTC"
# [4] "2014-01-04 UTC" "2014-01-05 UTC" "2014-01-06 UTC"
# [7] "2014-01-07 UTC" "2014-01-08 UTC" "2014-01-09 UTC"
# [10] "2014-01-10 UTC"
正如在評論中指出,由G.格羅騰迪克,這裏是一個更通用的解決方案
p <- paste(start(my.timeseries), seq_along(my.timeseries))
as.Date(p, "%Y %j")
# [1] "2014-01-01" "2014-01-02" "2014-01-03" "2014-01-04"
# [5] "2014-01-05" "2014-01-06" "2014-01-07" "2014-01-08"
# [9] "2014-01-09" "2014-01-10"
as.Date
可能會更好,以避免任何時間區域問題。
我強烈建議你使用xts對象而不是ts。
這裏是複製你想要什麼代碼:
library(xts)
my.index = seq(from = as.Date("2014-01-01"), by = "day", length.out = 10)
my.timeseries = xts(x = 1:10, order.by = my.index)
index(my.timeseries)
讓我們知道,如果幫助:)
羅曼
Thx。 \t \t 不幸的是ts對象已經存在。所以我尋找一個處理ts的解決方案。 – user2030503 2014-10-31 15:32:48
Woops。對不起,我沒有閱讀關於此的第一條評論。 – Romain 2014-10-31 15:44:00
'ts'對日期無效。建議您使用動物園或xts。 '庫(動物園); z < - zooreg(1:10,as.Date(「2014-01-01」))' – 2014-10-31 13:14:18
不幸的是ts對象已經存在。所以我尋找一個處理ts的解決方案。 – user2030503 2014-10-31 13:18:20
如果你知道'my.timeseries'包含從一年開始的連續日期,那麼這將會把它轉換成帶有Date類索引的zooreg系列:'zooreg(coredata(my.timeseries),as.Date(as .yearmon(start(my.timeseries))))' – 2014-10-31 13:33:49