2016-07-29 31 views
0

Mein xts Objekt sieht wie folgt aus:löschen Einträge von Freitag bis Sonntag auf einem xts Objekt

      BID  OFR  PRICE 
    2015-01-01 13:15:00 1.48168 1.48285 0.3935712 
    2015-01-01 13:20:00 1.48013 1.48102 0.3924305 
    2015-01-01 13:25:00 1.47922 1.48012 0.3918190 
    2015-01-01 13:30:00 1.47947 1.47970 0.3917616 
    2015-01-01 13:35:00 1.48019 1.48046 0.3922617 
     . 
     . 
     . 
     . 

Ich habe die Zeitzone EST. Wie kann ich Einträge von Freitag 17:05, Eastern Time (EST) bis Sonntag 17:00, Osterzeit (EST) löschen? Vielen Dank im Voraus.

Antwort

1

Entdecken Sie die Dokumentation in xts für ?.indexwday.

Sie dies tun könnte, die Daten, die Sie für Ihre angegeben (Forex) Handelszeiten erhalten möchten, vorausgesetzt, dat enthält Ihre xts Zeitreihe:

is_fri <- .indexwday(dat) == 5 & (.indexhour(dat) >= 18 | .indexhour(dat) == 17 & .indexmin(dat) >= 5) 
is_sat <- .indexwday(dat) == 6 
is_sun <- .indexwday(dat) == 0 & .indexhour(dat) <= 16 

xts_data_you_want <- dat[!(is_fri | is_sat | is_sun)] 

.indexwday kehrt 1 für Montag, 2 für Dienstag, usw. Für die Zeitstempel im Objekt xts und die selbsterklärenden numerischen Werte werden auch für .indexmin, .indexhour zurückgegeben.

Als eine Überprüfung können Sie weekdays(index(dat)) zu sehen, .indexwday gibt zurück, was Sie für bestimmte Zeitstempel erwarten.

+0

Laut '.indexwday (dat) 'Sunday ist gleichbedeutend mit' == 0'. Sie müssen 'is_sun <- .indexwday (dat) == 7 & .indexhour (dat) <= 16' mit 'is_sun <- .indexwday (dat) == 0 & .indexhour (dat) <= 16' wechseln. Bevor der Code ausgeführt wird, ist es essentiell, 'Sys.setenv (TZ =" EST ")' auszuführen, da die Serien in dieser Zeitzone realisiert werden. – Greconomist