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
.