R: index() oder index.xts() ändert die Werte von Datum einer Zeitreihe, warum?

Möchte ich extrahieren Sie die Daten aus einer Zeitreihe, die mit getSymbols
aber wenn ich in der index /index.xts-Funktion die zurückgegebenen Termine erscheinen einen Tag früher.
Ich kann nicht verstehen, warum dieses Verhalten passiert in den folgenden code.

Jedoch, das beabsichtigte Verhalten ist, erhalten Sie eine Liste von Datum-Objekt entsprechend der in der ursprünglichen Zeitreihe.

Hier ist der code, beachten Sie den letzten Tag der Zeit-Serie SPY ist 24 Aug 2012, aber der Letzte Wert aus dem index(SPY) - Aufruf 23 Aug 2012:

getSymbols("SPY")

tail(SPY)

    SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted
2012-08-17   142.23   142.30  141.86    142.18   90813700       142.18
2012-08-20   141.98   142.22  141.59    142.19   78255700       142.19
2012-08-21   142.54   143.09  141.45    141.76  105581100       141.76
2012-08-22   141.40   142.05  141.07    141.82  132999200       141.82
2012-08-23   141.47   141.48  140.44    140.66  111406800       140.66
2012-08-24   140.31   141.83  140.22    141.51   99431500       141.51 

tail(index(SPY))

[1] "2012-08-16" "2012-08-19" "2012-08-20" "2012-08-21" "2012-08-22" "2012-08-23"

tail(index.xts(SPY))

[1] "2012-08-16" "2012-08-19" "2012-08-20" "2012-08-21" "2012-08-22" "2012-08-23"

Danke an alle, die Antworten auf meinen Beitrag.

Weitere Infos auf der Sitzung

>sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] rbenchmark_0.3.1             fGarch_2110.80.1            
 [3] fBasics_2160.81              MASS_7.3-20                 
 [5] timeSeries_2160.95           timeDate_2160.95            
 [7] tseries_0.10-29              quadprog_1.5-4              
 [9] PerformanceAnalytics_1.0.4.4 quantstrat_0.6.8            
[11] blotter_0.8.10               FinancialInstrument_0.15.2  
[13] quantmod_0.3-17              TTR_0.21-1                  
[15] Defaults_1.1-1               xts_0.8-6                   
[17] zoo_1.7-7                    lubridate_1.1.0             
[19] stringr_0.6.1                plyr_1.7.1                  
[21] XML_3.9-4.1                 

loaded via a namespace (and not attached):
 [1] colorspace_1.1-1   dichromat_1.2-4    digest_0.5.2       ggplot2_0.9.1     
 [5] grid_2.15.1        labeling_0.2       lattice_0.20-6     memoise_0.1       
 [9] munsell_0.3        proto_0.3-9.2      RColorBrewer_1.0-5 reshape2_1.2.1    
[13] scales_0.2.1       stabledist_0.6-4   tools_2.15.1     


> getDefaults(getSymbols)
NULL
> getSymbolLookup("SPY")
NULL
> showSymbols()
 SPY     GSPC      IBM      XLF      XLP      XLE      XLY      XLV      XLI 
 "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo" 
     XLB      XLK      XLU      IEF     AAPL      DIA     MSFT      IWM      EEM 
 "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo" 
     EFA      GLD      AGG      HYG      FXE      FXY      VXX      VXZ      HIG 
 "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo"  "yahoo" 
    VTI      VEU      VNQ      DBC      XAU     gold     Gold STOXX50E     GOLD 
"yahoo"  "yahoo"  "yahoo"  "yahoo"  "oanda"  "oanda"  "oanda"  "yahoo"  "yahoo" 
     VIX  DEXUSEU   EURUSD  DEXKOUS    EUR=X    INR=X 
 "yahoo"   "FRED"  "oanda"   "FRED"  "yahoo"  "yahoo" 

Beachten Sie auch, dass ich einige installiert, R-code aus der Systematischen Investor-blog, systematicinvestor.wordpress.com durch die Verwendung der Befehle

setInternet2(TRUE)
con = gzcon(url('systematicportfolio.com/sit.gz', 'rb'))
source(con) 
close(con) 

LÖSUNG PLUS ZUSÄTZLICHE FRAGE

GSEE umfasst user die Antwort gefunden (Danke!) wies darauf hin, dass in meiner session habe ich maskiert index.xts. So eine Lösung ist der Aufruf xts:::index.xts(SPY), anstatt nur den index.xts(SPY) das überschreiben der Maskierung.
In der Tat den Befehl

> tail(xts:::index.xts(SPY)) 

gibt die richtige Antwort

[1] "2012-08-17" "2012-08-20" "2012-08-21" "2012-08-22" "2012-08-23" "2012-08-24" –

Die Antwort jetzt aufgefordert, eine andere Frage: unter dem code für die "Maskierung/überschreiben" - index.xts-Funktion (das gibt die falsche Antwort, verschieben sich die Termine einen Tag früher):

> index.xts
function (
x           # XTS object
)
{
temp = attr(x, 'index')
class(temp)='POSIXct'   
if( attr(x, '.indexCLASS')[1] == 'Date')
    temp = as.Date(temp)
return(temp)
}

Warum ist diese Funktion zurückgeben, die falsche Ergebnisse, wenn Sie aufgerufen Schwanz(index.xts(SPY)) ? Was ist falsch mit dem code von diesem index.xts-Funktion?

Vergleichen Sie die beiden output (der erste ist falsch, während die zweite die richtige Antwort):

tail(index.xts(SPY))

[1] "2012-08-16" "2012-08-19" "2012-08-20" "2012-08-21" "2012-08-22" "2012-08-23"

tail(xts:::index.xts(SPY))
[1] "2012-08-17" "2012-08-20" "2012-08-21" "2012-08-22" "2012-08-23" "2012-08-24"

Nochmals vielen Dank für Ihre Zeit und Aufmerksamkeit.

  • Kann ich nicht reproduzieren. Fügen Sie bitte die Ausgabe von sessionInfo() zu Ihrer Frage. Auch die Ausgabe von getDefaults(getSymbols) und getSymbolLookup("SPY") wenn einer von Ihnen nicht NULL und die Ausgabe von showSymbols()
  • Danke GSEE umfasst für die Beantwortung meiner Botschaft, ich habe aktualisiert es mit den zusätzlichen Informationen über die session-Daten
  • Es sieht aus wie Sie möglicherweise maskiert index.xts. Was passiert, wenn Sie tail(xts:::index.xts(SPY))?
  • beachten Sie auch, dass ich einige installiert, R-code aus der Systematischen Investor-blog, systematicinvestor.wordpress.com, indem Sie den Befehl setInternet2(TRUE); con = gzcon(url('systematicportfolio.com/sit.gz', 'rb')); source(con); close(con)
  • GSEE umfasst, haben Sie das problem gefunden! hier ist die Ausgabe > Heck(xts:::index.xts(SPY)) [1] "2012-08-17" "2012-08-20" "2012-08-21" "2012-08-22" "2012-08-23" "2012-08-24"
  • GSEE umfasst, habe ich an die post eine weitere Frage zu dem code von der "falschen" index.xts, wenn Sie Lust auf einen Blick. Danke!
  • Weiter bestätigen. Der R-code aus der Systematischen Investor-blog, systematicinvestor.wordpress.com definiert den index.xts-Funktion verursacht die falsche Antwort.
  • Ich bin mit xts (0.9-7), und die Berufung auf die index () - Befehl scheint, um die Datum/Zeit-Objekte falsch, wenn ich nicht setzen Sie die Umgebungsvariable " TZ. Hier erklärt: stackoverflow.com/questions/6374874/... Ändern meine Zeitzone GMT halfen mir, mal rechts. Es wurde " auf meinem Ubuntu-system. In einigen Fällen kann eine Verzögerung auch nur eines Tag auftreten kann, und Ihre korrupten Datensatz, daher denke ich, ist es eine gute Idee, um zu überprüfen, ob Sie immer die richtigen Zeiten mit xts-Objekte. Das merkwürdige ist, können die Objekte unterschiedlich dargestellt werden, bevor/nach mit index oder .index* Spaß

InformationsquelleAutor Filippo Neri | 2012-08-25
Schreibe einen Kommentar