2012-03-23 4 views
0

Une fois que vous avez créé des clusters à l'aide de hclust, puis cutree pour spécifier les clusters vers le bas; comment pouvez-vous récupérer les membres formant les différents groupes? Supposons que vous ayez créé un cluster hiérarchique simple, quelle commande peut récupérer les éléments "séparément" figurant dans les feuilles du groupe de clusters?Récupération de membres à partir de clusters (feuilles)

J'ai essayé avec table() mais pas moyen ...

Répondre

1

Vous pouvez utiliser la fonction split: pour le second argument définissant comment les données doivent être groupées, utilisez votre arbre coupé. Il renverra une liste où chaque élément est un cluster différent.

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

Si vous voulez juste les noms des membres:

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"  

ou si vous voulez que les données originales séparées par cluster:

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 
# [...] 
Questions connexes