# Importar datos
library(readr)
## Warning: package 'readr' was built under R version 4.0.4
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.
head(EmojisFood)
## # A tibble: 6 x 35
## name emoji `Calories (kcal~ `Carbohydrates ~ `Total Sugar (g~ `Protein (g)`
## <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 grapes "\U00~ 0.69 0.181 0.155 0.0072
## 2 melon "\U00~ 0.28 0.0658 0.0569 0.0111
## 3 water~ "\U00~ 0.3 0.0755 0.062 0.0061
## 4 tange~ "\U00~ 0.53 0.133 0.106 0.0081
## 5 lemon "\U00~ 0.290 0.0932 0.025 0.011
## 6 banana "\U00~ 0.89 0.228 0.122 0.0109
## # ... with 29 more variables: Total Fat (g) <dbl>, Saturated Fat (g) <dbl>,
## # Monounsaturated Fat (g) <dbl>, Polyunsaturated Fat (g) <dbl>,
## # Total Fiber (g) <dbl>, Cholesterol (mg) <dbl>, Vitamin B6 (mg) <dbl>,
## # Vitamin A (IU) <dbl>, Vitamin B12 (ug) <dbl>, Vitamin C (mg) <dbl>,
## # Vitamin D (IU) <dbl>, Vitamin E (IU) <dbl>, Vitamin K (ug) <dbl>,
## # Thiamin (mg) <dbl>, Riboflavin (mg) <dbl>, Niacin (mg) <dbl>,
## # Folate (ug) <dbl>, Pantothenic Acid (mg) <dbl>, Choline (mg) <dbl>,
## # Calcium (g) <dbl>, Copper (mg) <dbl>, Iron (mg) <dbl>,
## # Magnesium (mg) <dbl>, Manganese (mg) <dbl>, Phosphorus (g) <dbl>,
## # Potassium (g) <dbl>, Selenium (ug) <dbl>, Sodium (g) <dbl>, Zinc (mg) <dbl>
# Normalizar datos
EmojisFoodN <- EmojisFood
EmojisFoodN[,c(3:35)] <- scale(EmojisFoodN[,c(3:35)])
# Asignación de nombres
rownames(EmojisFoodN) <- EmojisFood$name
## Warning: Setting row names on a tibble is deprecated.
summary(EmojisFoodN)
## 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
distancias <- dist(EmojisFoodN)
## Warning in dist(EmojisFoodN): NAs introducidos por coerción
# Agrupamiento jerarquico
clusters <- hclust(distancias)
# install.packages("ggdendro")
# Dendrograma
library(ggdendro)
## Warning: package 'ggdendro' was built under R version 4.0.5
dendrograma <- ggdendrogram (clusters, size=2)
dendrograma

# install.packages("stringi")
# Adicionar emojis
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)
# install.packages("ggimage")
# Dendograma con emojis
library(ggimage)
## Warning: package 'ggimage' was built under R version 4.0.5
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.0.5
dendrograma <- ggdendrogram (clusters, size=2)
dendrograma <- dendrograma + geom_emoji(data=labels, aes(id,-0.3,image=code),size=0.02)
dendrograma <- dendrograma + geom_hline(yintercept = 13, color='red')
dendrograma <- dendrograma + annotate("text", label="corte", x=0, y=14, color='red')
dendrograma
