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ó:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> 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.
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQEcBAEBAgAGBQJRdr4aAAoJEDoUMoeY1RuMkbUH/2F6HyDiYhLuFp74r3+O++8J
> iRuqJthhyaDTBuEKa/t3F9WsBWL/iWkShNnE5wYKR7rY/Z7dgFM/+9GAbQEOFXgY
> UBv3vHk0DN9592WNnYfUcGWsgBHoxMvYN+jeFXjUsG7BEQNFDiI8PzPZ3J1smmQd
> RZ5vI2zgTv4f5B11ZKd5i6t0lMVxZclryi0/lQ+vtg7eKq7J/6CTz7IJVlM90wIn
> 8gUnqaIycg/yQPgC17cfRkuWHEBuqGRfxbMmOoqnf1szntYzXLv3G3Vuhj8wfh0Q
> icE6SX2BdaYv8hhg1bojeASUe0mu9WfTjIYjILvy8UFLZBPFRA+yhza4GZsc9gA=
> =00hy
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es


	[[alternative HTML version deleted]]

