[R-es] Media Ponderada

Rubén Gómez Antolí lobo en mucharuina.com
Vie Jul 29 21:23:39 CEST 2011


Hola a todos:

Aprovecho para presentarme ya que soy nuevo en la lista (llevo un tiempo 
«solo leyendo»). Me llamo Rubén y llevo utilizando R aproximadamente 
desde Enero y no en profundidad. Encontré esta lista buscando resolver 
algunos problemas que tenía y, bueno, aquí estoy.

El 29/07/11 10:53, jose cebrian escribió:
> Hola a todos.
> Ya he escrito sobre esto pero vuelvo a no ser capaz de resolver una cosa
>
> Tengo este archivo
>
>
>
> año   mes      fecha  puerto           barco   origen       arte
>
>   2007 enero 2007-01-04 Ribeira  juan        Norte     PAREJA
>   2007 enero 2007-01-04 Ribeira    luis        -Norte     BETA
>   2007 enero 2007-01-04 Ribeira  pedro     Norte     PAREJA
>   2007 enero 2007-01-04 Ribeira    marcosNorte     BACA
>   2007 enero 2007-01-04 Ribeira       nolo    Norte     GNR
> 2007 enero 2007-01-04 Ribeira      bein     Norte     TNF
>
>   p.desem  talla ejemplares
>     1485        30          6
>     1485         31         18
>      1485         32         18
>      1485         33         12
>     1485         57         12
>      1485         35          6
>
>
>
> Puedo hallar la Media Ponderada de la Talla en funcion de los ejemplares (weighted.mean (talla, ejemplares))
> Pero no soy capaz de hallar la media ponderada en funcion del arte
>
> Tal que me quede algo asi
>
>    BACA     BETA   PAREJA
> 40.12        28.66    42.27
>
> Esto me sale con      tapply(talla+ejemplares,arte, weighted.mean, na.rm=TRUE)
>
>
> Lo que pasa es que esto es la media y yo quiero la media ponderada

Creo que lo puedes hacer así, suponiendo que los datos los tienes en un 
«data.frame» que lo voy a llamar prueba:

for (i in length(levels(prueba$arte))) {
    z = prueba[which(prueba$arte == levels(prueba$arte)[i]),9:10]
    weigthed.mean(z[,1],z[,2])
}

Seguro que se puede hacer con *apply pero todavía no me aclaro mucho con 
ellas y ahora llevo unas semanas que no toco R por lo que estoy 
desentrenado. ^_^

>
> Bueno, gracias por leerme
> Saludos
> Jocedo

Espero que haya ayudado en algo y no haberlo entendido todo al revés.

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