Пример Aggregate () в R - PullRequest
       3

Пример Aggregate () в R

9 голосов
/ 20 января 2011

Я просматривал страницу справки для функции aggregate в R. Я никогда не использовал эту вспомогательную функцию, но у меня есть процесс, который должен помочь мне ускорить работу. Тем не менее, я был совершенно не в состоянии пройти через пример и понять, что происходит.

Один из примеров:

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

Вывод здесь именно то, что я ожидал. Поэтому я пытаюсь понять, что происходит. Итак, я смотрю на 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

ОК, это странно для меня. Я ожидаю увидеть столбец в state.x77 с именем state.region или что-то в этом роде. Поэтому state.region должен быть своим собственным объектом. Поэтому я делаю str () для него:

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

Похоже, что state.region - это просто фактор. Каким-то образом ДОЛЖНА быть связь между state.region и state.x77 для того, чтобы aggregate () мог сгруппировать state.x77 по state.region. Но эта связь для меня загадка. Можете ли вы помочь мне заполнить мои очевидные недоразумения?

Ответы [ 3 ]

10 голосов
/ 20 января 2011

Из старого рекламного тампона (это были тампоны?): «Доказательство, а не только обещания!»

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)
4 голосов
/ 20 января 2011

Вероятно, они в правильном порядке, поскольку эти объекты задокументированы на той же странице справки ?state.x77, которая имеет:

Details:

     R currently contains the following “state” data sets.  Note that
     all data are arranged according to alphabetical order of the state
     names.
1 голос
/ 20 января 2011

Попробуйте help(state.region) и т.д. --- все они выровнены:

Подробности:

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