2012-08-24 13 views
5

Per favore, mettere questa struttura dati in R al fine di riprodurre il mio esempio:Nessun metodo applicabile per 'tempo <-' applicata a un oggetto della classe "c ('XTS', 'Zoo')"

dX <- structure(c(3272.1, 3271.48, 3281.03, 3267.08, 3260.65, NA, 1616.3, 
1620.1, 1639.9, 1637.4, 1669.6, 1662.2, 528.385, 529.268, 531.022, 
532.424, NA, NA), .indexTZ = "", class = c("xts", "zoo"), .indexCLASS = c("POSIXct", 
"POSIXt"), tclass = c("POSIXct", "POSIXt"), tzone = "", index = structure(c(1345147200, 
1345406400, 1345492800, 1345579200, 1345665600, 1345752000), tzone = "", tclass = c("POSIXct", 
"POSIXt")), .Dim = c(6L, 3L), .Dimnames = list(NULL, c("M1WO.Index", 
"GC1.COMB.Comdty", "JGAGGUSD.Index"))) 

Ora provate questo codice:

library(PerformanceAnalytics) 
library(quantmod) 
library(timeSeries) 
charts.PerformanceSummary(R = dX) 

e ottenere questo errore:

Error in UseMethod("time<-") : 
    no applicable method for 'time<-' applied to an object of class "c('xts', 'zoo')" 

Credo che la questione è di circa i dati di cui class = c("xts, "zoo"), ma Non capisco perché legge quei dati in quel formato e come posso costringerlo a un semplice oggetto xts.

Come posso risolvere questo problema?

Il mio sistema:

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

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

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

other attached packages: 
[1] timeSeries_2160.94   timeDate_2160.95    
[3] quantmod_0.3-17    TTR_0.21-1     
[5] Defaults_1.1-1    PerformanceAnalytics_1.0.4.4 
[7] xts_0.8-6     zoo_1.7-7     
[9] rcom_2.2-5     rscproxy_2.0-5    

loaded via a namespace (and not attached): 
[1] fBasics_2160.81 fGarch_2110.80.1 grid_2.15.1  lattice_0.20-6 
[5] MASS_7.3-18  stabledist_0.6-4 tools_2.15.1 

Quando carico i pacchetti, ottengo il seguente:

Loading required package: zoo 

Attaching package: ‘zoo’ 

The following object(s) are masked from ‘package:base’: 

    as.Date, as.Date.numeric 

Loading required package: timeDate 

Attaching package: ‘timeDate’ 

The following object(s) are masked from ‘package:PerformanceAnalytics’: 

    kurtosis, skewness 

Attaching package: ‘timeSeries’ 

The following object(s) are masked from ‘package:zoo’: 

    time<- 

Secondo il Messaggio di errore, credo che il problema arriva quando si collega timeSeries e time<- è mascherato da package:zoo, che in realtà non so cosa significhi e come comportarsi.

+0

Hai caricato il pacchetto 'xts'? – Pop

+0

Naturalmente ho :) Ho appena aggiunto un'altra riga di comando al mio codice di esempio, per caricare 'quantmod' e quindi caricare' xts'. – user1621969

+0

Considera che 'class (as.xts (dX))' restituisce ancora un oggetto '' xts "" zoo "', mentre vorrei omettere il componente 'zoo'. – user1621969

risposta

10

Il problema è il pacchetto timeSeries. Caricamento dà il seguente avviso:

Attaching package: ‘timeSeries’ 

The following object(s) are masked from ‘package:zoo’: 

    time<- 

è possibile scollegare il pacchetto per l'utilizzo di charts.PerformanceSummary e di caricarlo di nuovo:

detach('package:timeSeries') 
detach('package:timeDate') # since it masks statistical functions 
charts.PerformanceSummary(R = dX) 
library(timeSeries) 
+0

Grazie, Roland. Per favore, supponiamo che io ** debba ** caricare 'timeSeries': come posso affrontare questo problema? – user1621969

+0

Scollegare e caricare nuovamente. – Roland

+0

Sì! Cos'altro? :) Grazie mille – user1621969

Problemi correlati