Hola,
Mira este ejemplo:
http://stackoverflow.com/questions/11422493/using-r-how-do-i-create-a-time-series-object-with-dates
Tienes que convertir alguna de tus columnas a un objeto "as.Date()".
Lo que puedes hacer es algo así:
#-----------------------
library(lubridate)
datos.ag$anioMesDia <- ymd(paste(datos.ag$Año, datos.ag$MesNro, rep(1, nrow(
datos.ag), sep = "-"))
#-----------------------
De esta forma has creado una nueva columna con el año, mes y como no tienes
el día y hace falta para convertir a fecha, ponemos el primer día del mes
de forma artificial. Con la función "ymd()" lo conviertes a una
variable de
clase "Date" que ya puedes convertir a clase "ts" porque
dentro del
conjunto existe una variable fecha.
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 1 de agosto de 2016, 20:20, Mauricio Monsalvo <m.monsalvo en gmail.com>
escribió:
> Hola.
> Tengo una problema con una transformación que hace ts que no logro entender
> si debe preocuparme o no... porque no sé que hace. Tengo un objeto
> > class(datos.ag)
> "data.table" "data.frame"
> > head(datos.ag)
> Año MesNro Mes Valores Unidades Aportes CantLaboratorios CantSeg
> CantProductos
> 1: 2014 1 Ene 357424644 612537 21407745 76 9
> 404
> 2: 2014 2 Feb 318919837 495443 20917489 78 8
> 398
> 3: 2014 3 Mar 339963350 584218 22119442 77 8
> 407
> 4: 2014 4 Abr 350679101 606382 23775092 76 8
> 411
> 5: 2014 5 May 488830529 814274 48437929 77 10
> 443
> Mes es un factor. MesNro es el resultado de usar ifelse tal que
"Ene" = 1,
> "Feb" = 2, ..., "Dic" = 3, como puede verse:
> > str(datos.ag)
> Classes ?data.table? and 'data.frame': 30 obs. of 10 variables:
> $ Año : int 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014
> ...
> $ MesNro : num 1 2 3 4 5 6 7 8 9 10 ...
> $ Mes : Factor w/ 12 levels
"Abr","Ago","Dic",..: 4 5 8 1 9 7
> 6 2 12 11 ...
> Pero cuando creo una serie temporal:
> > datos.ts <- ts(datos.ag, start=c(2014, 1), frequency = 12)
> > datos.ts
> Año MesNro Mes Valores Unidades Aportes CantLaboratorios
> CantSeg CantProductos
> Jan 2014 2014 1 4 357424644 612537 21407745 76
> 9 404
> Feb 2014 2014 2 5 318919837 495443 20917489 78
> 8 398
> Mar 2014 2014 3 8 339963350 584218 22119442 77
> 8 407
> Apr 2014 2014 4 1 350679101 606382 23775092 76
> 8 411
> May 2014 2014 5 9 488830529 814274 48437929 77
> 10 443
> > str(datos.ts)
> Time-Series [1:30, 1:10] from 2014 to 2016: 2014 2014 2014 2014 2014 ...
> - attr(*, "dimnames")=List of 2
> ..$ : NULL
> ..$ : chr [1:10] "Año" "MesNro" "Mes"
"Valores" ...
> > class(datos.ts)
> [1] "mts" "ts" "matrix"
> ?La variable Mes ha sido convertida... a algo que parece una serie de
> meses, pero que arranca en 4 y que no coincide con los meses en formato
> int... Creo que simplemente debería obviarla, pero estoy intentando
> aprender series de tiempo y me parece que hay algo de la lógica del objeto
> ts que me voy a perder si no pregunto qué está sucediendo o qué estoy
> haciendo mal.
> Si pudiera entender qué sucede, tal vez podría utilizar directamente ese
> factor Mes para crear la serie temporal.
> Miré las referencias en
> https://cran.r-project.org/web/views/TimeSeries.html
> pero resuelvo mi duda.
> ?Muchas gracias.?
>
> --
> Mauricio
> ?)
> ?
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]