2016-06-01 9 views
1

Warum erzeugen x und y (unten) beim Filtern des xts-Objekts unterschiedliche Ergebnisse? Sowohl x als auch y scheinen eindeutige Daten zu speichern, eine als Zeichen und die andere als Datum. ob [x] gibt alle Datensätze zurück. ob [y] gibt 1 Datensatz pro Datum zurück (nur wenn ein Datensatz mit Mitternacht, 00:00:00 übereinstimmt).Warum verursacht as.Date für einen xts-Index ein anderes Ergebnis?

seq1<- seq(as.POSIXct("2015-09-01"),as.POSIXct("2015-09-14"), by = "30 mins") 
ob<- xts(data.frame(closingPrice=1:(length(seq1))),seq1) 
x = unique(format(index(ob), format = "%Y-%m-%d")) 
y = as.Date(unique(format(index(ob), format = y = as.Date(unique(format(index(ob), format = "%Y-%m-%d")))))) 
ob[x] 
ob[y] 

Antwort

0

x ist ein Zeichen, Vektor, y ist ein Datum Vektor. Wenn Sie ein xts-Objekt mit einem date-time-Objekt unterteilen, erhalten Sie nur exakte Übereinstimmungen (in diesem Fall Mitternacht eines jeden Tages).

Wenn Sie eine Untermenge von einem Zeichenvektor verwenden, verwenden Sie die ISOs-8601-basierte Untermenge von xts (siehe ?"[.xts"). Eine Funktion dieser Art der Teilmenge ist, dass Sie alle Beobachtungen erhalten, die bis zur niedrigsten spezifizierten Komponente passen.

Sie haben Jahr, Monat und Tag angegeben, damit Sie alle Indexbeobachtungen erhalten, die an diesem bestimmten Tag auftreten. Ein anderes Beispiel: Geben Sie alles bis zu einer Stunde an und Sie erhalten alle Beobachtungen für diese Stunde.

> ob[paste(x[1],"12")] 
        closingPrice 
2015-09-01 12:00:00   25 
2015-09-01 12:30:00   26 
Verwandte Themen