2011-01-20 20 views
9

Estaba viendo la página de ayuda para la función aggregate en R. Nunca había usado esta función de conveniencia, pero tengo un proceso que debería ayudarme a acelerar. Sin embargo, he sido totalmente incapaz de seguir el ejemplo y entender lo que está pasando.Agregado() ejemplo en R

Un ejemplo es la siguiente:

1> aggregate(state.x77, list(Region = state.region), mean) 
     Region Population Income Illiteracy Life Exp Murder HS Grad Frost Area 
1  Northeast  5495 4570  1.000 71.26 4.722 53.97 132.78 18141 
2   South  4208 4012  1.738 69.71 10.581 44.34 64.62 54605 
3 North Central  4803 4611  0.700 71.77 5.275 54.52 138.83 62652 
4   West  2915 4703  1.023 71.23 7.215 62.00 102.15 134463 

La salida aquí es exactamente lo que esperaría. Entonces trato de entender qué está pasando. Así que miro state.x77

1> head(state.x77) 
      Population Income Illiteracy Life Exp Murder HS Grad Frost Area 
Alabama   3615 3624  2.1 69.05 15.1 41.3 20 50708 
Alaska   365 6315  1.5 69.31 11.3 66.7 152 566432 
Arizona   2212 4530  1.8 70.55 7.8 58.1 15 113417 
Arkansas   2110 3378  1.9 70.66 10.1 39.9 65 51945 
California  21198 5114  1.1 71.71 10.3 62.6 20 156361 
Colorado   2541 4884  0.7 72.06 6.8 63.9 166 103766 

OK, eso es extraño para mí. Esperaría ver una columna en state.x77 llamada state.region o algo así. Así que state.region debe ser su propio objeto. Así que hago un str() en él:

1> str(state.region) 
Factor w/ 4 levels "Northeast","South",..: 2 4 4 2 4 4 1 2 2 2 ... 

Parece que state.region es solo un factor. De alguna manera TIENE que haber una conexión entre state.region y state.x77 para que aggregate() agrupe state.x77 por state.region. Pero esa conexión es un misterio para mí. ¿Puedes ayudarme a completar mis obvios malentendidos?

Respuesta

10

de un viejo tam pon (¿eran tampones?) comerciales: "¡Prueba, no solo promesas!"

state.x777 <- as.data.frame(state.x77) 
state.x777 <- cbind(state.x777, stejt.ridzn = state.region) 
aggregate(state.x77, list(Region = state.x777$stejt.ridzn), mean) 
+2

+1 para validación –

4

Son probablemente en el orden correcto, ya que estos objetos están documentados en la misma página de ayuda ?state.x77, que tiene:

Details: 

    R currently contains the following “state” data sets. Note that 
    all data are arranged according to alphabetical order of the state 
    names. 
+2

Doh! Olvidé que los datos tienen páginas de ayuda. –

1

Trate help(state.region) etc --- todos están alineados:

detalles:

R currently contains the following “state” data sets. Note that 
all data are arranged according to alphabetical order of the state 
names. 
Cuestiones relacionadas