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
