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

Mauricio Monsalvo m.monsalvo en gmail.com
Lun Ago 1 20:20:09 CEST 2016


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



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