#Multidimensionamiento escalar

#importar datos
EmojisFood <- read.csv("D:/Usuario/Desktop/Visualización de datos/3/EmojisFood.csv")
#str(EmojisFood)
#summary(EmojisFood)

EmojisFood[,c(3:35)] <- scale(EmojisFood[,c(3:35)])
summary(EmojisFood)
##      name              emoji           Calories..kcal.   Carbohydrates..g.
##  Length:58          Length:58          Min.   :-1.0639   Min.   :-1.0219  
##  Class :character   Class :character   1st Qu.:-0.7687   1st Qu.:-0.7282  
##  Mode  :character   Mode  :character   Median :-0.2925   Median :-0.3300  
##                                        Mean   : 0.0000   Mean   : 0.0000  
##                                        3rd Qu.: 0.4538   3rd Qu.: 0.2736  
##                                        Max.   : 3.9322   Max.   : 3.1973  
##  Total.Sugar..g.     Protein..g.      Total.Fat..g.     Saturated.Fat..g.
##  Min.   :-0.53076   Min.   :-0.7405   Min.   :-0.5343   Min.   :-0.5029  
##  1st Qu.:-0.53076   1st Qu.:-0.6398   1st Qu.:-0.5228   1st Qu.:-0.4988  
##  Median :-0.32710   Median :-0.4445   Median :-0.4885   Median :-0.4877  
##  Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000  
##  3rd Qu.: 0.09345   3rd Qu.: 0.2784   3rd Qu.: 0.2602   3rd Qu.: 0.1850  
##  Max.   : 4.89934   Max.   : 3.3174   Max.   : 5.7458   Max.   : 5.2561  
##  Monounsaturated.Fat..g. Polyunsaturated.Fat..g. Total.Fiber..g.  
##  Min.   :-0.4936         Min.   :-0.48592        Min.   :-0.8385  
##  1st Qu.:-0.4919         1st Qu.:-0.46840        1st Qu.:-0.8385  
##  Median :-0.4778         Median :-0.39896        Median :-0.2018  
##  Mean   : 0.0000         Mean   : 0.00000        Mean   : 0.0000  
##  3rd Qu.: 0.1989         3rd Qu.: 0.05455        3rd Qu.: 0.4349  
##  Max.   : 5.5993         Max.   : 4.65856        Max.   : 4.0590  
##  Cholesterol..mg.   Vitamin.B6..mg.    Vitamin.A..IU.    Vitamin.B12..ug.  
##  Min.   :-0.54253   Min.   :-0.81610   Min.   :-0.2333   Min.   :-0.39416  
##  1st Qu.:-0.54253   1st Qu.:-0.52795   1st Qu.:-0.2329   1st Qu.:-0.39416  
##  Median :-0.54253   Median :-0.41563   Median :-0.2148   Median :-0.39416  
##  Mean   : 0.00000   Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.00000  
##  3rd Qu.:-0.04561   3rd Qu.:-0.08841   3rd Qu.:-0.1856   3rd Qu.:-0.07245  
##  Max.   : 3.34109   Max.   : 4.11979   Max.   : 5.5979   Max.   : 5.75848  
##  Vitamin.C..mg.    Vitamin.D..IU.    Vitamin.E..IU.     Vitamin.K..ug.    
##  Min.   :-0.4132   Min.   :-0.2218   Min.   :-0.41123   Min.   :-0.56700  
##  1st Qu.:-0.4132   1st Qu.:-0.2218   1st Qu.:-0.41123   1st Qu.:-0.56700  
##  Median :-0.3951   Median :-0.2218   Median :-0.27068   Median :-0.43099  
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.00000  
##  3rd Qu.:-0.1557   3rd Qu.:-0.2218   3rd Qu.: 0.08709   3rd Qu.: 0.09516  
##  Max.   : 5.3463   Max.   : 7.0921   Max.   : 6.68453   Max.   : 5.20270  
##   Thiamin..mg.     Riboflavin..mg.    Niacin..mg.       Folate..ug.     
##  Min.   :-0.7580   Min.   :-1.0235   Min.   :-0.7268   Min.   :-0.7362  
##  1st Qu.:-0.5955   1st Qu.:-0.7851   1st Qu.:-0.6508   1st Qu.:-0.6032  
##  Median :-0.3805   Median :-0.4665   Median :-0.4071   Median :-0.3056  
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000  
##  3rd Qu.: 0.1825   3rd Qu.: 0.7301   3rd Qu.: 0.1062   3rd Qu.: 0.3211  
##  Max.   : 3.9035   Max.   : 3.0077   Max.   : 4.8244   Max.   : 5.3418  
##  Pantothenic.Acid..mg.  Choline..mg.      Calcium..g.        Copper..mg.      
##  Min.   :-0.8894       Min.   :-0.6944   Min.   :-0.43652   Min.   :-0.68044  
##  1st Qu.:-0.7173       1st Qu.:-0.5831   1st Qu.:-0.37984   1st Qu.:-0.46652  
##  Median :-0.2574       Median :-0.3917   Median :-0.31507   Median :-0.22798  
##  Mean   : 0.0000       Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.00000  
##  3rd Qu.: 0.2353       3rd Qu.: 0.1226   3rd Qu.:-0.03371   3rd Qu.: 0.08597  
##  Max.   : 3.3322       Max.   : 5.0225   Max.   : 6.76942   Max.   : 6.33731  
##    Iron..mg.       Magnesium..mg.    Manganese..mg.     Phosphorus..g.   
##  Min.   :-0.8899   Min.   :-0.7685   Min.   :-0.49738   Min.   :-0.8269  
##  1st Qu.:-0.6601   1st Qu.:-0.4432   1st Qu.:-0.42991   1st Qu.:-0.6489  
##  Median :-0.4940   Median :-0.3293   Median :-0.26775   Median :-0.3911  
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.0000  
##  3rd Qu.: 0.4182   3rd Qu.: 0.1100   3rd Qu.: 0.03228   3rd Qu.: 0.3142  
##  Max.   : 3.2778   Max.   : 4.6976   Max.   : 6.32613   Max.   : 4.5439  
##  Potassium..g.     Selenium..ug.       Sodium..g.        Zinc..mg.       
##  Min.   :-1.3421   Min.   :-0.7164   Min.   :-0.6320   Min.   :-0.68967  
##  1st Qu.:-0.5695   1st Qu.:-0.6962   1st Qu.:-0.6234   1st Qu.:-0.59653  
##  Median :-0.2368   Median :-0.6205   Median :-0.5743   Median :-0.35633  
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.00000  
##  3rd Qu.: 0.2711   3rd Qu.: 0.2522   3rd Qu.: 0.2810   3rd Qu.:-0.03524  
##  Max.   : 3.6656   Max.   : 2.3510   Max.   : 3.1993   Max.   : 3.89868
distancias <- dist(EmojisFood, upper = TRUE)
## Warning in dist(EmojisFood, upper = TRUE): NAs introducidos por coerción
dimReduced <- cmdscale(d=distancias, k=2)
dimReduced <- as.data.frame(dimReduced)

groups <- kmeans(distancias,center=5)
dimReduced$cluster <- groups$cluster

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
grafico <- ggplot(dimReduced)
grafico <- grafico + aes(V1, V2, label = rownames(dimReduced))
grafico <- grafico + geom_point(aes(color=as.factor(cluster)))
grafico <- grafico + geom_text( hjust = 0, nudge_x = 0.15, angle = 45, size = 3, check_overlap = TRUE)
grafico <- grafico + geom_density2d_filled(aes(alpha=0.01), bins=9)
grafico
## Warning: The following aesthetics were dropped during statistical transformation: label
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?