2017-06-27 3 views
0

Ich habe ein XTS-Objekt, das eine Variable über einen Zeitraum von zwei Wochen gemessen 15 Minuten Stichprobe darstellt.Subsetting XTS-Objekt mit Daten und Zeit

Ein Beispiel für die Daten wie folgt:

> class(wideRawXTS) 
[1] "xts" "zoo" 

> head(wideRawXTS[,2],10) 
        DO0182U09B3 
2017-01-20 16:30:00  -103.37 
2017-01-20 16:45:00  -102.75 
2017-01-20 17:00:00  -103.30 
2017-01-20 17:15:00  -95.92 
2017-01-20 17:30:00  -103.04 
2017-01-20 17:45:00  -103.67 
2017-01-20 18:00:00  -103.26 
2017-01-20 18:15:00  -103.86 
2017-01-20 18:30:00  -103.96 
2017-01-20 18:45:00  -103.33 

> str(wideRawXTS) 
An ‘xts’ object on 2017-01-20 16:30:00/2017-02-03 16:00:00 containing: 
    Data: num [1:1343, 1:12] -102 -101 -101 -101 -101 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:12] "DO0182U09A3" "DO0182U09B3" "DO0182U09C3" "DO0182U21A1" ... 
    Indexed by objects of class: [POSIXlt,POSIXt] TZ: 
    xts Attributes: 
NULL 

Ich möchte jeden Tag dh 24 Stunden Daten extrahieren - 2017.01.20 16.30.00 -> 2017.01.21 16 : 30: 00 für eine einzelne Variable, damit ich die Intra-Day-Korrelation für diese einzelne Variable berechnen kann.

Ich habe ausgecheckt Joshua Ulrich's XTS FAQ, aber es adressiert keine Daten, die eine Datums- und Uhrzeitkomponente hat.

Wie kann ich dieses XTS-Objekt in 14-Tage-Blöcke (96 Samples) unterteilen?

+0

Werfen Sie einen Blick auf Jubas Antwort von [hier] (https://stackoverflow.com/questions/19420155/subset-rows-according-to-a-range-of-time) –

Antwort

1

Wenn Sie sich für eine Intra-Day-Korrelation mit einer anderen Serie suchen, könnten Sie xts::apply.daily verwenden:

library(xts) 

times <- seq(
    from = as.POSIXct("2000-01-01 00:00:00"), 
    to = as.POSIXct("2000-01-10 00:00:00"), 
    by = 15 * 60 
) 

values1 <- runif(length(times)) 
values2 <- runif(length(times)) 

series <- xts(x = cbind(values1, values2), order.by = times) 

apply.daily(series, FUN = function(x) cor(x = x[, 1], 
              y = x[, 2])) 
#>        [,1] 
#> 2000-01-01 23:45:00 -0.067156934 
#> 2000-01-02 23:45:00 -0.005426825 
#> 2000-01-03 23:45:00 0.011104314 
#> 2000-01-04 23:45:00 -0.085361525 
#> 2000-01-05 23:45:00 -0.047193367 
#> 2000-01-06 23:45:00 0.149419147 
#> 2000-01-07 23:45:00 0.068223067 
#> 2000-01-08 23:45:00 0.002006084 
#> 2000-01-09 23:45:00 0.023573252 
#> 2000-01-10 00:00:00   NA 

Quelle: abgeleitet von Joshua Ulrich Antwort here.