2017-09-23 7 views
0

J'utilise ce code de jouet pour effectuer une classification hiérarchique de base:modifier des données originales avec des indices de cluster

library(dplyr) 
library(ggplot2) 

OrginalData <- read.table("https://s3.amazonaws.com/Somewhere/IrisTabSepData/IrisData.txt", 
        header = TRUE, sep = "\t") 

SubsetData <- subset(OrginalData, select = c(
#"SepalLength" 
#,"SepalWidth" 
"PetalLength" 
,"PetalWidth" 
)) 

clusters = hclust(dist(SubsetData), method = 'average') 
plot(clusters) 

clusterCut <- cutree(clusters, 3) 
table(clusterCut, OrginalData$Species) 

ggplot(OrginalData, aes(PetalLength, PetalWidth, color = OrginalData$Species)) + 
    geom_point(alpha = 0.4, size = 3.5) + geom_point(col = clusterCut) + 
    scale_color_manual(values = c('black', 'red', 'green')) 

Est-il possible d'ajouter une colonne supplémentaire à la OrginalData de dataframe original contenant les groupes créés dans ce qui précède code (3 dans ce cas 1-3) et l'écrire en tant que fichier csv?

+0

'$ clusterCut = Données originales clusterCut' ' write.csv ("EnhancedIris.csv Données originales", row.names = FAUX) ' – G5W

+0

Merci Cela fonctionne très bien. Il y a eu quelques fautes d'orthographe alors voici le code de travail: OrginalData $ clusterCut = clusterCut write.csv (OrginalData, "EnhancedIris.csv", row.names = FALSE). Seriez-vous heureux d'écrire une réponse? – cs0815

Répondre

1

La variable clusterCut que vous avez déjà créée contient les clusters. Vous pouvez simplement les ajouter à data.frame et utiliser write.csv pour sauvegarder les données.

OrginalData$clusterCut = clusterCut 
write.csv(OrginalData, "EnhancedIris.csv", row.names=FALSE)