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 <[email protected]> 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 > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
