emojiFood <- read.csv2("EmojisFood.csv", sep=",", dec=".")

#nombrar las filas con los nombres de alimentos
rownames(emojiFood) <- emojiFood$name

#normalizar los datos para evitar sesgos por magnitud
emojiFood[, c(3:35)] <- scale(emojiFood[, c(3:35)])

# calcular la matriz de distancias
distancias <- dist(emojiFood[, c(3:35)], method = "euclidean")

# convertir la matriz de distancias a un formato adecuado para dendrograma
matrizDistancias <- as.matrix(distancias)

# crear el dendrograma
dendrograma <- hclust(distancias, method = "ward.D2") #hierarchical clustering

# graficar el dendrograma
library(ggplot2)
#install.packages("ggdendro")
library(ggdendro)

dendroChart <- ggdendrogram(dendrograma)
dendroChart

# ********** multidimensionamiento escalar o MDS ***********

# reducir la dimensionalidad de los datos para visualización
mdsOutput <- cmdscale(distancias, k = 2) #k=2 dimensiones

# Convertir la salida de cmdscale a un data frame
mdsOutput <- as.data.frame(mdsOutput)

# grafica
mdsChart <- ggplot(mdsOutput,aes(V1, V2))
mdsChart <- mdsChart + geom_point() 
mdsChart <- mdsChart + geom_text(aes(label = rownames(mdsOutput)), vjust = -1, hjust = 1, size=2.5, angle=45)
mdsChart <- mdsChart + geom_density2d(color = "blue")
mdsChart <- mdsChart + labs(title = "MDS de Alimentos", x = "Dimensión 1", y = "Dimensión 2")
# set the scale of x axis startin at -3 and ending at 15
mdsChart <- mdsChart + scale_x_continuous(limits = c(-10, 15))
mdsChart