[R-es] Media de elementos tomados uno a uno de un data.frame
Hola: El 27/11/11 17:45, Carlos Ortega escribió:
Hola, Otra forma bastante compacta de conseguir el valor medio es la siguiente:
> library(sqldf)
> wdf<-as.data.frame(vientos)
> names(wdf)<-c('mes','dir','calm','v1','v2')
> sqldf("select avg(calm) `Calma`, avg(v1) `V1` , avg(v2) `V2` from wdf
group by dir")
Calma V1 V2
1 9.666667 0.000000 0.000000
2 0.000000 8.666667 6.666667
3 0.000000 9.000000 9.666667
4 0.000000 3.333333 5.333333
5 0.000000 7.000000 6.666667
>
Mediante comandos sql, según veo. Muchas gracias por la sugerencia, como suele suceder, siempre hay más de un camino para llegar al resultado correcto.
Saludos, Carlos Ortega www.qualityexcellence.es <http://www.qualityexcellence.es> El 27 de noviembre de 2011 16:16, Rubén Gómez Antolà <lobo en mucharuina.com <mailto:lobo en mucharuina.com>> escribió: [...]
aggregate(
cbind(as.matrix(Aero.vientos[,__3:14])),
list(Dir=Aero.vientos[["__Dirección"]],
Est=est(Aero.vientos[["Meses"]__])),
FUN = mean, data = Aero.vientos[,1:14]
)
Además, respeta el nombre de las columnas.
¿Alguien harÃa el favor de explicarme porque falla el primero y
«acierta» el último?
Para la mediana debes usar median y para la desv. estandar sd.
Pues el mismo código anterior falla miserablemente para estas dos
funciones. :^(
Aquà ya me he colado, sera por la inercia, para estos datos no me hacÃa falta calcular la desv. estándar ni la mediana. Resumiendo, que lo he conseguido resolver con el código de arriba. Ahora, poco a poco, ya iré cogiéndole el «tranquillo» a aggregate y las demás sugerencias. Gracias de nuevo a todos. 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