[R-es] Media de elementos tomados uno a uno de un data.frame

Rubén Gómez Antolí lobo en mucharuina.com
Sab Nov 26 23:42:51 CET 2011


Hola:

Tengo un conjunto de datos de viento de esta forma:

vientos<-matrix(c(
   c(rep(1,5),rep(2,5),rep(3,5)), # Meses
   rep(c("Calma","Norte","Este","Sur","Oeste"),3), # Dirección
   c(10,0,0,0,0,8,0,0,0,0,11,0,0,0,0), # Calma
   c(0,7,8,10,1,0,9,8,7,6,0,11,10,4,3), # 1-5 m/s
   c(0,9,10,12,7,0,10,3,2,1,0,10,7,6,8)), # 6-10 m/s
   ncol=5,dimnames=list(c(1:15),
     c("Meses","Dirección","Calma","1-5 m/s","6-10 m/s"))
)

Obviamente tengo datos de los doce meses pero me quedo en el tercero por 
no complicar. (Los datos son porcentajes de ocurrencia)

Ahora quiero agrupar por estaciones (invierno, primavera...) esos datos, 
por lo que debería ir sumando cada «celda» una a una según intervalo de 
velocidad y dirección del viento, y dividir entre tres -para obtener la 
media-. Quedaría así:

Dirección, Calma, 1-5 m/s, 6-10 m/s
Calma, (10+8+11)/3,0,0
Norte,0,(7+9+11)/3,(9+10+10)/3
etc.

El caso es que estoy ahí, bregando con cbind, rbind, rowsMeans y tapply 
y no lo consigo. Se que puedo hacerlo con un bucle, ya lo he resuelto 
antes de esta forma, pero me gustaría ver como resolverlo con «ordenes» 
de R.

Por cierto, para calcular medias según intervalos se que existe 
weighted.mean(), ¿y la mediana y la desviación típica? (Tengo creadas 
mis propias funciones pero me gustaría saber si existen en R)

Gracias por vuestra atención y por las posibles respuestas.

Salud y Revolución.

Lobo.
-- 
Libertad es poder elegir en cualquier momento. Ahora yo elijo GNU/Linux,
para no atar mis manos con las cadenas del soft propietario.
---------
Desde El Ejido, en Almería, usuario registrado Linux #294013
http://www.counter.li.org



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