[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