Извлечение членов из кластеров (листьев) - PullRequest
1 голос
/ 23 марта 2012

Как только вы создадите кластеры, используя hclust, затем cutree, чтобы указать нисходящие кластеры; Как вы можете получить членов, образующих различные кластеры? Предположим, вы создали простой иерархический кластер. Какая команда может извлекать элементы «отдельно», фигурирующие в листьях группы кластеров?

Я пытался с table(), но никак ...

1 Ответ

2 голосов
/ 23 марта 2012

Вы можете использовать функцию split: для второго аргумента, определяющего способ группировки данных, используйте вырезку дерева. Он вернет список, в котором каждый элемент представляет собой отдельный кластер.

hc <- hclust(dist(USArrests), "ave")
ct <- cutree(hc, k=3)

Если вы просто хотите имена членов:

split(names(ct), ct)
# $`1`
#  [1] "Alabama"        "Alaska"         "Arizona"        "California"   
#  [5] "Delaware"       "Florida"        "Illinois"       "Louisiana"     
#  [9] "Maryland"       "Michigan"       "Mississippi"    "Nevada"        
#  [13] "New Mexico"     "New York"       "North Carolina" "South Carolina"

# $`2`
#  [1] "Arkansas"      "Colorado"      "Georgia"       "Massachusetts"
#  [5] "Missouri"      "New Jersey"    "Oklahoma"      "Oregon"       
#  [9] "Rhode Island"  "Tennessee"     "Texas"         "Virginia"     
# [13] "Washington"    "Wyoming"      

# $`3`
#  [1] "Connecticut"   "Hawaii"        "Idaho"         "Indiana"      
#  [5] "Iowa"          "Kansas"        "Kentucky"      "Maine"        
#  [9] "Minnesota"     "Montana"       "Nebraska"      "New Hampshire"
# [13] "North Dakota"  "Ohio"          "Pennsylvania"  "South Dakota" 
# [17] "Utah"          "Vermont"       "West Virginia" "Wisconsin"    

или если вы хотите, чтобы исходные данные были разбиты по кластерам:

split(USArrests, ct)
# $`1`
#                Murder Assault UrbanPop Rape
# Alabama          13.2     236       58 21.2
# Alaska           10.0     263       48 44.5
# Arizona           8.1     294       80 31.0
# [...]

# $`2`
#               Murder Assault UrbanPop Rape
# Arkansas         8.8     190       50 19.5
# Colorado         7.9     204       78 38.7
# Georgia         17.4     211       60 25.8
# [...]

# $`3`
#               Murder Assault UrbanPop Rape
# Connecticut      3.3     110       77 11.1
# Hawaii           5.3      46       83 20.2
# Idaho            2.6     120       54 14.2
# [...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...