library(ggplot2)
# Importo el dataset
# install.packages("emojifont")
library(readr)
EmojisFood <- read_csv("EmojisFood.csv")
## 
## -- Column specification --------------------------------------------------------
## cols(
##   .default = col_double(),
##   name = col_character(),
##   emoji = col_character()
## )
## i Use `spec()` for the full column specifications.
View(EmojisFood)
# normalizar datos
emojiNorm<- scale(EmojisFood[,3:35])

# ASIGNACION DE NOMBRES
rownames(emojiNorm)<- EmojisFood$name

# Calculo las distancias entre datos
distancias <- dist(emojiNorm)

# agrupamiento jerarquico
clusters<- hclust(distancias)

library('ggdendro')

# dendograma
dendograma<- ggdendrogram(clusters)
dendograma

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)


library('ggdendro')
library('ggimage')
dendrograma <- ggdendrogram (clusters)
dendrograma <- dendrograma + geom_emoji(data=labels, aes(id,-0.3,image=code),size=0.02)
dendrograma