2012-08-24 6 views
5

Por favor, ponga esta estructura de datos en R con el fin de reproducir mi ejemplo:Ningún método aplicable para el momento <- 'aplicada a un objeto de clase "C ('XTS', 'zoológico')"

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"))) 

Ahora probar este código:

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

y obtiene este error:

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

supongo que el tema se trata de los datos básicos cuyos class = c("xts, "zoo"), pero No entiendo por qué lee esos datos en ese formato y cómo puedo forzarlo a un simple objeto xts.

¿Cómo podría solucionar este problema?

Mi 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 

Cuando cargo paquetes, me sale el siguiente:

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<- 

De acuerdo con el del messagge error, supongo que el problema viene cuando se fija timeSeries y time<- está enmascarado a partir package:zoo, que realmente no sé lo que significa y cómo lidiar.

+0

¿Ha cargado el paquete 'xts'? – Pop

+0

Por supuesto que tengo :) Acabo de agregar otra línea de comando a mi código de ejemplo, para cargar 'quantmod' y así cargar' xts' también. – user1621969

+0

Considere que 'class (as.xts (dX))' todavía devuelve un objeto '' xts "" zoo "', mientras que me gustaría omitir el componente 'zoo'. – user1621969

Respuesta

10

El problema es el paquete timeSeries. Cargando da la siguiente advertencia:

Attaching package: ‘timeSeries’ 

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

    time<- 

Es posible extraer el paquete para el uso charts.PerformanceSummary y que cargarlo de nuevo:

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

Gracias, Roland. Supongamos que ** tengo que ** cargar 'timeSeries': ¿cómo puedo manejar este problema? – user1621969

+0

Separar y volver a cargar. – Roland

+0

¡Sip! ¿Qué más? :) Muchas gracias – user1621969

Cuestiones relacionadas