multiple funcion columns sum aggregate

sum - funcion - r aggregate multiple columns



Obteniendo resultados diferentes usando las funciones aggregate() y sum() en R (1)

Estoy tratando de obtener un cuadro de datos de resumen de las cantidades totales de las variables prop.damage y crop.damage por STATE variable usando la función aggregate() en R con el siguiente código:

stormdata$prop.damage <- with(stormdata, ifelse(PROPDMGEXP == ''K'', (PROPDMG * 10^3), ifelse(PROPDMGEXP == ''M'', (PROPDMG * 10^6), ifelse(PROPDMGEXP == ''B'', (PROPDMG * 10^9), NA)))) stormdata$crop.damage <- with(stormdata, ifelse(CROPDMGEXP == ''K'', (CROPDMG * 10^3), ifelse(CROPDMGEXP == ''M'', (CROPDMG * 10^6), ifelse(CROPDMGEXP == ''B'', (CROPDMG * 10^9), NA)))) damagecost <- with(stormdata, aggregate(x = prop.damage + crop.damage, by = list(STATE), FUN = sum, na.rm = TRUE)) damagecost <- damagecost[order(damagecost$x, decreasing = TRUE), ]

Aquí las variables PROPDMGEXP y CROPDMGEXP se usan como un multiplicador para las variables numéricas PROPDMG y CROPDMG . Mi principal conjunto de datos es stormdata .

Y obtengo lo siguiente:

> head(damagecost) Group.1 x 8 CA 120211639720 13 FL 27302948100 38 MS 14804212820 63 TX 12550131850 20 IL 11655920860 2 AL 9505473250

Pero, por ejemplo, si hago la adición "manualmente" para California (''CA'') obtengo esto:

> sum(stormdata$prop.damage[stormdata$STATE == ''CA''], na.rm = TRUE) + sum(stormdata$crop.damage[stormdata$STATE == ''CA''], na.rm = TRUE) [1] 127115859410

No entiendo por qué obtengo resultados diferentes.


Resulta que las dos variables prop.damage y crop.damage tenían valores NA dentro de ellas y esas NA estaban afectando el resultado cuando las variables se agregaron en la función aggregate .