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

Marcuzzi, Javier Rubén javier.ruben.marcuzzi en gmail.com
Dom Nov 27 00:27:53 CET 2011


Estimado Rubén

Yo pasaría su matriz a data.frame

Posiblemente su código es correcto, pero para mi es mucho mas fácil usar 
data.frame, y por otro lado se pueden crear bucles o utilizar funciones 
vectorizadas de R, que son mucho más rápidas.

Javier

-----Mensaje original----- 
From: Rubén Gómez Antolí
Sent: Saturday, November 26, 2011 7:42 PM
To: r-help-es en r-project.org
Subject: [R-es] Media de elementos tomados uno a uno de un data.frame

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

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



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