[R-es] Problemas con NA y el calculo de un promedio ponderado

neo ericconchamunoz en gmail.com
Mar Abr 23 22:21:46 CEST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

ok, voy a probar jose, muchas gracias,

eric,




On 04/23/2013 02:54 PM, Jose Luis Cañadas wrote:
> Hola Eric.
> 
> Quizá esto te sirva
> 
> # Crear 3 vectores con las diferentes condiciones, la cond3 no se cumple 
> en ningún caso de los
> # datos que envias
> 
> cond1 <- graph$sol == "con" & graph$dia == 1 & graph$NIns == 1
> cond2 <- graph$sol == "con" & graph$dia == 1 & graph$NIns == 2
> cond3 <- graph$sol == "con" & graph$dia == 1 & graph$NIns == 3
> 
> # Crear un vector pesos que valga 1 para los que cumplan cond1, 2 para 
> cond2, 3 para cond3
> # y 0 para el resto
> graph$pesos[cond1] <- 1
> graph$pesos[cond2] <- 2
> graph$pesos[cond3] <- 3
> graph$pesos[is.na(graph$pesos)] <- 0
> 
> # Utilizar weigthed.mean para calcular la media ponderada.
> with( graph, weighted.mean(area, pesos) )
> 
> Saludos
> 
> El 23/04/13 19:00, neo escribió:
> Estimada comunidad, tengo el siguiente problema:
> 
> 1. tengo un data.frame con varias columnas, algunas numericas, otras son
> variables categoricas
> 2. necesito hacer un calculo simple sobre este data.frame (un promedio
> ponderado de los valores de la columna 7), pero solo para las filas que
> cumplan ciertos criterios
> 3. en ocasiones ninguna de las filas cumple todos los criterios
> exigidos, lo que genera un NA
> 4. cuando se usa ese NA en el calculo del promedio ponderado genera un NaN
> 
> obviamente la pregunta es, como puedo evitar esto ? pues dada la
> naturaleza del calculo (un promedio ponderado) si existe un NA se puede
> simplemente ignorar, pero no se como hacerlo.
> 
> adjunto el codigo y los archivos a ver si me dan una mano para evitar
> hacer esos calculos a mano
> 
> ui1 <- (mean(graph[graph$sol=="con" & graph$dia==1 & graph$NIns==1,
> 7],na.rm = TRUE) + mean(graph[graph$sol=="con" & graph$dia==1 &
> graph$NIns==2, 7],na.rm = TRUE)*2 + mean(graph[graph$sol=="con" &
> graph$dia==1 & graph$NIns==3, 7],na.rm = TRUE)*3)/100
> 
> uno nunca explica bien lo que pasa o quiere hacer, asi es que cualquier
> duda me escriben por favor
> 
> muchas gracias, eric.
> 
> 
> 
>>
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
> 
> 
> 	[[alternative HTML version deleted]]
> 
> 
> 
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJRdu1SAAoJEDoUMoeY1RuMVaMH/RgM38IJaTXMn2koctWpNi2Q
UpVGB+sezKkO1uAVKVuNB+JtKS0R3oP7roiYft4vV4E/C7JZZ7uGA/4G176GdXhF
vzTK1MxRNq0RD5p61Z9i02ut1v8iSLn9wFVIg/yDBzNEWsAkNi62KRoYFJAZ9JCt
pNoW64NSPuRNUEVujdEbxiGgwpCsNRqHKJpEHaqfDW8c5auI103qa7uDvyRErtoa
oB4/6KlT5BAVUlhT7qwYUdZfbaxIQ7RbMJ89Qcsvwoi78z1/NrdYrwLumud5n8Mg
T+1d0rByBMk26w6bow9zEByFla/R3s3L1LFWDfG12al3uB+ICRrBUCC4fekmTIM=
=DTKL
-----END PGP SIGNATURE-----



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