2016-01-13 104 views
2

我需要處理幾百個時間序列,這些時間序列大致對應於類似的測量結果,但與不同的人在不同的日子。R:同步時間序列(xts)對象

時間戳已經轉換爲POSIX格式。

我的問題是,我想忽略這樣一個事實,即時間序列已經在不同的日子和不同的開始時間進行了採樣。換句話說,我想重新設置時間序列的格式,以便從完全相同的開始時間開始計算秒數,以便比較它們更容易。

下面是兩個系列的示例:

系列1的次數:

"2015-10-15 07:48:59 CEST", "2015-10-15 07:49:59 CEST", "2015-10-15 07:50:59 CEST", ... 

系列2的時間:

"2015-10-17 02:08:59 CEST", "2015-10-17 02:09:59 CEST", "2015-10-17 02:10:59 CEST", ... 

兩個系列應該被映射到一種標準時間框架,例如

"2000-01-01 09:00:00 CEST", "2000-01-01 09:00:01 CEST", "2000-01-01 09:00:02 CEST", ... 

你會如何做到這一點?

回答

1

你只需要從每個索引中分別減去第一個索引值。例如:

require(xts) 
data(sample_matrix) 
x <- as.xts(sample_matrix, dateFormat="Date") 
head(x) 
#    Open  High  Low Close 
# 2007-01-02 50.03978 50.11778 49.95041 50.11778 
# 2007-01-03 50.23050 50.42188 50.23050 50.39767 
# 2007-01-04 50.42096 50.42096 50.26414 50.33236 
# 2007-01-05 50.37347 50.37347 50.22103 50.33459 
# 2007-01-06 50.24433 50.24433 50.11121 50.18112 
# 2007-01-07 50.13211 50.21561 49.99185 49.99185 
index(x) <- index(x) - unclass(start(x)) 
head(x) 
#    Open  High  Low Close 
# 1970-01-01 50.03978 50.11778 49.95041 50.11778 
# 1970-01-02 50.23050 50.42188 50.23050 50.39767 
# 1970-01-03 50.42096 50.42096 50.26414 50.33236 
# 1970-01-04 50.37347 50.37347 50.22103 50.33459 
# 1970-01-05 50.24433 50.24433 50.11121 50.18112 
# 1970-01-06 50.13211 50.21561 49.99185 49.99185 
+0

非常感謝!但是,如果我想將時間序列的開始映射到單個POSIXct對象,那麼這將如何工作:ref.start < - as.POSIXct(「2016-01-01 09:00:00」) – CodingButStillAlive

+0

只需添加索引的秒數。 –