Dataset disponible en Kaggle (https://www.kaggle.com/ofrancisco/emoji-diet-nutritional-data-sr28/data)
library(ggplot2)
#install.packages("emojifont")
library(emojifont)
# Importo el dataset
EmojisFood <- read.csv("C:/Users/vibr1874/Desktop/I Semestre MAIN/Visualizacion/Food_Dendograma/Data/EmojisFood.csv")
# normalizar datos
EmojisFoodN <- EmojisFood
EmojisFoodN[,c(3:35)] <- scale(EmojisFoodN[,c(3:35)])
rownames(EmojisFoodN) <- EmojisFood$name
# Calculo las distancias entre datos
distancias <- dist(EmojisFoodN)
# Hago el agrupamiento jerárquico
clusters <- hclust(distancias)
# labels
#install.packages("stringi")
library(stringi)
labels <- EmojisFood[,c(1,2)]
# function para adicionar datos de labels
trimEmojiCode <- function (df,order){
for(i in 1:nrow(df)){
index <- order[i]
df[index,3] <- order[i]
tmp <- strsplit(stringi::stri_escape_unicode(df[index,2]),"\\\\U000")
df[i,4] <- tmp[[1]][2]
}
colnames(df)<- c('name','emoji','id','code')
return (df)
}
# Nuevo dataset de labels
labels <- trimEmojiCode(labels, clusters$order)
# dendrograma
#install.packages("ggdendro")
library(ggdendro)
#install.packages("ggimage")
library(ggimage)
dendrograma <- ggdendrogram (clusters, size=2)
dendrograma <- dendrograma + geom_emoji(data=labels, aes(id,-0.3,image=code),size=0.02)
dendrograma