Skip to content

[R-es] datos climáticos cambio de formato

8 messages · Milagros Rodriguez, Olivier Nuñez, Carlos Ortega +1 more

#
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 en unex.es
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ó:
#
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 en qualityexcellence.es> escribió:

  
    
2 days later
#
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 en gmail.com> escribió: