[R-es] Conversión de meses en ts(x)

Carlos Ortega cof en qualityexcellence.es
Mar Ago 2 00:27:57 CEST 2016


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



Más información sobre la lista de distribución R-help-es