Muchas gracias por tus aportes Daniel, me ha sido de gran ayuda!
Prometo usar dput la próxima vez!

Milagros


El 18 de febrero de 2013 18:29, daniel <daniel319@gmail.com> escribió:

> Milagros,
>
> Ya que insistes en ignorar el help de R para saber para que sirve la
> función dput ( ?dput). Voy a darte un ejemplo.
> En mi e-mail anterior llegué a un data.frame z (cuando uses dput
> utilizaré tus datos). Bueno en mi sesión
> de R procedí a:
>
> dput(z)
>
> Al resusltado le hice un copy/paste en este e-mail asignándolo  a z.
> En tu sesión puedes empezar a partir de aquí.
>
> library(xts) # estoy acostumbrado a usar el paquete xts, y no
> únicamente el zoo. Mi vicio.
>
> z <- structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L,
> 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L,
> NA, 27L, 28L, 29L, 30L, NA, 32L, 33L, 34L, 35L, 36L, 37L, 38L,
> 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L,
> 52L, 53L, NA, 55L, 56L, 57L, 58L, 59L, 60L, NA, 62L, 63L, 64L,
> 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L), index = structure(c(-10592,
> -10561, -10533, -10502, -10472, -10441, -10411, -10380, -10349,
> -10319, -10288, -10258, -10227, -10196, -10168, -10137, -10107,
> -10076, -10046, -10015, -9984, -9954, -9923, -9893, -9862, -9831,
> -9803, -9772, -9742, -9711, -9681, -9650, -9619, -9589, -9558,
> -9528, -9497, -9466, -9437, -9406, -9376, -9345, -9315, -9284,
> -9253, -9223, -9192, -9162, -9131, -9100, -9072, -9041, -9011,
> -8980, -8950, -8919, -8888, -8858, -8827, -8797, -8766, -8735,
> -8707, -8676, -8646, -8615, -8585, -8554, -8523, -8493, -8462,
> -8432), class = "Date"), class = "zoo")
>
> # como verás no sólo te proporciono mis datos sino también información
> # muy relevante sobre el tipo de datos que te envío. Luego sigo con
> na.aggregate.
>
> agrega_z <- na.aggregate(as.zoo(z), months)
> # Siempre conviene revisar
> str(agrega_z)
> z_mean <- mean(agrega_z)
> z_mean
> z_sd <- sd(agrega_z)
> z_sd
> # para normalizar puedes usar directamente la función
> ?scale
> z_nrmlz <- scale(agrega_z)
> mean(z_nrmlz)  # seguramente muy cercano a cero
> apply(z_nrmlz, 2, sd)
> str(z_nrmlz)
>
>
> Espero te sirva.
>
> Daniel Merino
>
> El día 18 de febrero de 2013 15:57, Milagros Rodriguez
> <milagrosrodriguezc@gmail.com> escribió:
> > Muchas gracias por sus aportes, finalmente fue útil el último código que
> > recibí! gracias Daniel!
> > De qué se trata dput?
> > Quizás, me puedan ayudar con otra duda, que es cómo sacar los desvíos de
> > cada dato,
> > si tengo:
> >
> > le.T.reg <- zooreg(le.T.new)
> > le.T.reg
> >     data.1 data.2    data.3
> >
> > 1921-01-01 1921  1     8.50000
> > 1921-02-01 1921  2    14.00000
> > 1921-03-01 1921  3    9.50000
> > 1921-04-01 1921  4   196.50000
> > ......
> > 1988-10-01    1988   10    54.0
> > 1988-11-01    1988    11      3.0
> > 1988-12-01    1988    12    21.0
> >
> >
> > # para calcular la media histórica utilicé (me interesa la tercer
> columna):
> > m.hist <- aggregate(le.T.new, format(time(le.T.new), "%m"), mean)
> >
> >        V1 V2       V3
> > 01 1954.5  1 15.15441
> > 02 1954.5  2 17.16176
> > 03 1954.5  3 24.57353
> > 04 1954.5  4 37.21324
> > 05 1954.5  5 69.50735
> > 06 1954.5  6 79.56618
> > 07 1954.5  7 75.44030
> > 08 1954.5  8 54.73881
> > 09 1954.5  9 31.34559
> > 10 1954.5 10 19.77206
> > 11 1954.5 11 14.50735
> > 12 1954.5 12 17.37500
> >
> > Ahora me gustaría, para normalizar los datos, poder calcular el desvío
> > estandar o "anomalidad"
> > es decir, la diferencia entre el valor mensual y la media histórica del
> mes,
> > dividido luego por
> > el desvío estándar
> >
> > ¡?
> >
> >
> >
> > El 15 de febrero de 2013 19:39, daniel <daniel319@gmail.com> escribió:
> >
> >> Milagros,
> >>
> >> library(xts) # carga también zoo
> >> # genero una secuencia de año-mes para los datos
> >> t <- timeBasedSeq('1941-01/1946-12')
> >> t
> >> # creo un data frame. Si hubieras enviado tu data.frame con dput
> >> habría usado el tuyo.
> >> df <- as.data.frame( matrix(1:72, ncol=12, byrow=TRUE))
> >> df
> >> # genero NA
> >> df[ 5, 6] <- NA
> >> df[ 3, 7] <- NA
> >> df[ 6, 1] <- NA
> >> df[ 3, 2] <- NA
> >> df
> >> # creo un vector para usarlo con zoo.
> >> v <- as.vector(t(df))
> >> v
> >> # creo el objeto zoo indicandole que el indice es una fecha
> >> z <- zoo(v, order.by = as.Date(t))
> >> z
> >> # aplico la función na.aggregate del paquete zoo
> >> na.aggregate(as.zoo(z), months)
> >>
> >>
> >> Espero te sirva.
> >>
> >> Daniel Merino
> >>
> >> El día 15 de febrero de 2013 18:24, Carlos Ortega
> >> <cof@qualityexcellence.es> escribió:
> >> > Hola,
> >> >
> >> > La verdad es que no sé si esto te valdrá... porque no sé qué quieres
> >> > hacer
> >> > después...
> >> >
> >> > ##################################################
> >> > Lines <- "Year V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
> >> > 1941 18.0 16.3 15.2   10.1  8.1 8.3 8.8 9.2    7.9   12.2 11.9 14.6
> >> > 1942 17.2 15.9 13.6   11.6  8.7 6.2 6.4 7.2    9.7   12.0 14.1 16.7
> >> > 1943 17.6 17.3 13.5   12.5 10.5 7.0 8.2 7.9 -999.9 -999.9 13.5 17.7
> >> > 1944 18.3 17.0 15.7 -999.9  9.6 9.4 8.0 7.5    9.5   10.6 14.6 17.4
> >> > 1945 19.8 17.5 15.8   12.8 10.9 8.1 7.3 8.3   10.3   11.7 13.4 14.9
> >> > 1946 15.9 15.0 14.2   12.7  9.2 7.6 8.1 8.6   10.2   10.8 13.1 15.2
> >> > "
> >> >
> >> > t.data<-textConnection(Lines)
> >> > datos<-read.table(t.data, header=T, as.is=T)
> >> > close(t.data)
> >> >
> >> > library(reshape2)
> >> > library(sqldf)
> >> > datosres <- melt(datos, id.vars=c(1))
> >> > datos.ord <- sqldf("select * from datosres order by Year")
> >> >
> >> > dat.zoo <- zooreg(datos.ord$value, start=1946, frequency=12)
> >> > ##################################################
> >> >
> >> >
> >> > Saludos,
> >> > Carlos Ortega
> >> > www.qualityexcellence.es
> >> >
> >> >
> >> > El 15 de febrero de 2013 19:49, Milagros Rodriguez <
> >> > milagrosrodriguezc@gmail.com> escribió:
> >> >
> >> >> Hola. Gracias Olivier!
> >> >> Con lo sugerido obtengo:
> >> >> > zooreg(valT, frequency = 12, start = c(1941, 1))
> >> >>            V1   V2   V3   V4   V5   V6   V7   V8  V9  V10  V11  V12
> >> >> V13
> >> >> 1941(1)  1941 18.0 16.3 15.2 10.1  8.1  8.3  8.8 9.2  7.9 12.2 11.9
> >> >> 14.6
> >> >> 1941(2)  1942 17.2 15.9 13.6 11.6  8.7  6.2  6.4 7.2  9.7 12.0 14.1
> >> >> 16.7
> >> >> 1941(3)  1943 17.6 17.3 13.5 12.5 10.5  7.0  8.2 7.9   NA   NA 13.5
> >> >> 17.7
> >> >> 1941(4)  1944 18.3 17.0 15.7   NA  9.6  9.4  8.0 7.5  9.5 10.6 14.6
> >> >> 17.4
> >> >> .....
> >> >>
> >> >> Pero no es correcto el resultado.
> >> >>
> >> >> Sin embargo, logré que lo hiciera con:
> >> >> valT.ts <- ts(valT, start = 1941, end = 2006)
> >> >> class(valT.ts)
> >> >> [1] "mts" "ts"
> >> >>
> >> >> > valT.ts
> >> >>
> >> >> Time Series:
> >> >> Start = 1941
> >> >> End = 2006
> >> >> Frequency = 1
> >> >>        V1   V2   V3   V4   V5   V6   V7   V8  V9  V10  V11  V12  V13
> >> >> 1941 1941 18.0 16.3 15.2 10.1  8.1  8.3  8.8 9.2  7.9 12.2 11.9 14.6
> >> >> 1942 1942 17.2 15.9 13.6 11.6  8.7  6.2  6.4 7.2  9.7 12.0 14.1 16.7
> >> >> 1943 1943 17.6 17.3 13.5 12.5 10.5  7.0  8.2 7.9   NA   NA 13.5 17.7
> >> >> 1944 1944 18.3 17.0 15.7   NA  9.6  9.4  8.0 7.5  9.5 10.6 14.6 17.4
> >> >> 1945 1945 19.8 17.5 15.8 12.8 10.9  8.1  7.3 8.3 10.3 11.7 13.4 14.9
> >> >> 1946 1946 15.9 15.0 14.2 12.7  9.2  7.6  8.1 8.6 10.2 10.8 13.1 15.2
> >> >> 1947 1947 15.9 15.9   NA   NA 10.2  9.8  7.6 7.6  9.8 11.9 14.2 14.7
> >> >> .....
> >> >>
> >> >> Pero al intentar aplicar la función:
> >> >>
> >> >> > na.aggregate(valT.ts, months)
> >> >> Error en UseMethod("months") :
> >> >>   no applicable method for 'months' applied to an object of class
> "ts"
> >> >>
> >> >>
> >> >> Y no logro tener el formato necesario con mis datos. Cómo se podrá
> >> >> solucionar?
> >> >>
> >> >> Gracias nuevamente!
> >> >>
> >> >>
> >> >> El 15 de febrero de 2013 15:24, Olivier Nuñez <onunez@unex.es>
> >> >> escribió:
> >> >>
> >> >> > Intenta,
> >> >> >
> >> >> > zooreg(T, frequency = 12, start = c(1941, 1))
> >> >> >
> >> >> > o utilizando el paquete ts
> >> >> >
> >> >> > ts(T, frequency = 12, start = c(1941, 1))
> >> >> >
> >> >> > Un saludo. Olivier
> >> >> >
> >> >> > --  ______________________________**______
> >> >> >
> >> >> > Olivier G. Nuñez
> >> >> > Email: onunez@unex.es
> >> >> > http://matematicas.unex.es/~**onunez
> >> >> > <http://matematicas.unex.es/~onunez
> >> >> >
> >> >> > Tel : +34 663 03 69 09
> >> >> > Departamento de Matemáticas
> >> >> > Universidad de Extremadura
> >> >> >
> >> >> > ______________________________**______
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > El 15/02/2013, a las 17:11, Milagros Rodriguez escribió:
> >> >> >
> >> >> >  Hola!!
> >> >> >>
> >> >> >> tengo un data.frame donde cada fila corresponde a un año y cada
> >> >> >> columna
> >> >> a
> >> >> >> un mes (De enero a diciembre)
> >> >> >>
> >> >> >>  head(valT)
> >> >> >>>
> >> >> >>
> >> >> >>             V2   V3   V4     V5   V6  V7  V8  V9    V10    V11
>  V12
> >> >> >> V13
> >> >> >> 1941 18.0 16.3 15.2   10.1  8.1 8.3 8.8 9.2    7.9   12.2 11.9
> 14.6
> >> >> >> 1942 17.2 15.9 13.6   11.6  8.7 6.2 6.4 7.2    9.7   12.0 14.1
> 16.7
> >> >> >> 1943 17.6 17.3 13.5   12.5 10.5 7.0 8.2 7.9 -999.9 -999.9 13.5
> 17.7
> >> >> >> 1944 18.3 17.0 15.7 -999.9  9.6 9.4 8.0 7.5    9.5   10.6 14.6
> 17.4
> >> >> >> 1945 19.8 17.5 15.8   12.8 10.9 8.1 7.3 8.3   10.3   11.7 13.4
> 14.9
> >> >> >> 1946 15.9 15.0 14.2   12.7  9.2 7.6 8.1 8.6   10.2   10.8 13.1
> 15.2
> >> >> >>
> >> >> >>
> >> >> >> Me gustaría transformarlo a un objeto "zoo" o "ts", es decir, que
> R
> >> >> >> reconozca que cada fila es un año y cada columna es un mes.
> >> >> >>
> >> >> >>
> >> >> >> Alguna sugerencia???
> >> >> >>
> >> >> >> Muchas gracias
> >> >> >>
> >> >> >> Milagros
> >> >> >>
> >> >> >>         [[alternative HTML version deleted]]
> >> >> >>
> >> >> >> ______________________________**_________________
> >> >> >> R-help-es mailing list
> >> >> >> R-help-es@r-project.org
> >> >> >> https://stat.ethz.ch/mailman/**listinfo/r-help-es<
> >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es>
> >> >> >>
> >> >> >
> >> >> >
> >> >>
> >> >>         [[alternative HTML version deleted]]
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >> R-help-es mailing list
> >> >> R-help-es@r-project.org
> >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >> >>
> >> >>
> >> >
> >> >
> >> > --
> >> > Saludos,
> >> > Carlos Ortega
> >> > www.qualityexcellence.es
> >> >
> >> >         [[alternative HTML version deleted]]
> >> >
> >> >
> >> > _______________________________________________
> >> > R-help-es mailing list
> >> > R-help-es@r-project.org
> >> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >> >
> >>
> >>
> >>
> >> --
> >> Daniel
> >
> >
>
>
>
> --
> Daniel
>

	[[alternative HTML version deleted]]

