Carga de los datos
library(readr)
EmojisFood <- read_csv("EmojisFood")
str(EmojisFood)
## tibble [58 x 35] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ name : chr [1:58] "grapes" "melon" "watermelon" "tangerine" ...
## $ emoji : chr [1:58] "<U+0001F347>" "<U+0001F348>" "<U+0001F349>" "<U+0001F34A>" ...
## $ Calories (kcal) : num [1:58] 0.69 0.28 0.3 0.53 0.29 0.89 0.5 0.63 0.58 0.57 ...
## $ Carbohydrates (g) : num [1:58] 0.181 0.0658 0.0755 0.1334 0.0932 ...
## $ Total Sugar (g) : num [1:58] 0.1548 0.0569 0.062 0.1058 0.025 ...
## $ Protein (g) : num [1:58] 0.0072 0.0111 0.0061 0.0081 0.011 0.0109 0.0054 0.002 0.0044 0.0036 ...
## $ Total Fat (g) : num [1:58] 0.0016 0.001 0.0015 0.0031 0.003 0.0033 0.0012 0.0018 0.0019 0.0014 ...
## $ Saturated Fat (g) : num [1:58] 0.00054 0.00025 0.00016 0.00039 0.00039 0.00112 0.00009 0 0 0.00022 ...
## $ Monounsaturated Fat (g): num [1:58] 0.00007 0.00002 0.00037 0.0006 0.00011 0.00032 0.00013 0 0 0.00084 ...
## $ Polyunsaturated Fat (g): num [1:58] 0.00048 0.00039 0.0005 0.00065 0.00089 0.00073 0.0004 0 0 0.00094 ...
## $ Total Fiber (g) : num [1:58] 0.009 0.009 0.004 0.018 0.028 0.026 0.014 0.021 0.028 0.031 ...
## $ Cholesterol (mg) : num [1:58] 0 0 0 0 0 0 0 0 0 0 ...
## $ Vitamin B6 (mg) : num [1:58] 0.00086 0.00163 0.00045 0.00078 0.0008 0.00367 0.00112 0.00045 0.00037 0.00029 ...
## $ Vitamin A (IU) : num [1:58] 0.66 0 5.69 6.81 0.22 0.64 0.58 0.38 1 0.25 ...
## $ Vitamin B12 (ug) : num [1:58] 0 0 0 0 0 0 0 0 0 0 ...
## $ Vitamin C (mg) : num [1:58] 0.032 0.218 0.081 0.267 0.53 0.087 0.478 0 0 0.043 ...
## $ Vitamin D (IU) : num [1:58] 0 0 0 0 0 0 0 0 0 0 ...
## $ Vitamin E (IU) : num [1:58] 0.0019 0.0005 0.0005 0.002 0.0015 0.001 0.0002 0.0018 0.0018 0.0012 ...
## $ Vitamin K (ug) : num [1:58] 0.146 0.025 0.001 0 0 0.005 0.007 0.01 0.032 0.044 ...
## $ Thiamin (mg) : num [1:58] 0.00069 0.00015 0.00033 0.00058 0.0004 0.00031 0.00079 0.00013 0.00019 0.00012 ...
## $ Riboflavin (mg) : num [1:58] 0.0007 0.00031 0.00021 0.00036 0.0002 0.00073 0.00032 0.00026 0.00025 0.00026 ...
## $ Niacin (mg) : num [1:58] 0.00188 0.00232 0.00178 0.00376 0.001 0.00665 0.005 0.0007 0.00126 0.00161 ...
## $ Folate (ug) : num [1:58] 0.02 0.08 0.03 0.16 0.11 0.2 0.18 0.03 0.03 0.07 ...
## $ Pantothenic Acid (mg) : num [1:58] 0.0005 0.00084 0.00221 0.00216 0.0019 0.00334 0.00213 0.00051 0.00056 0.00049 ...
## $ Choline (mg) : num [1:58] 0.056 0.076 0.041 0.102 0.051 0.098 0.055 0.034 0.034 0.051 ...
## $ Calcium (g) : num [1:58] 0.1 0.11 0.07 0.37 0.26 0.05 0.13 0.07 0.05 0.09 ...
## $ Copper (mg) : num [1:58] 0.00127 0.0006 0.00042 0.00042 0.00037 0.00078 0.0011 0.00025 0.00031 0.00082 ...
## $ Iron (mg) : num [1:58] 0.0036 0.0034 0.0024 0.0015 0.006 0.0026 0.0029 0.001 0.0015 0.0018 ...
## $ Magnesium (mg) : num [1:58] 0.07 0.11 0.1 0.12 0.08 0.27 0.12 0.05 0.05 0.07 ...
## $ Manganese (mg) : num [1:58] 0.00071 0.00035 0.00038 0.00039 0.0003 0.0027 0.00927 0.00031 0.00044 0.00048 ...
## $ Phosphorus (g) : num [1:58] 0.2 0.05 0.11 0.2 0.16 0.22 0.08 0.13 0.12 0.12 ...
## $ Potassium (g) : num [1:58] 1.91 1.82 1.12 1.66 1.38 3.58 1.09 1.09 1.2 1.16 ...
## $ Selenium (ug) : num [1:58] 0.001 0.004 0.004 0.001 0.004 0.01 0.001 0 0.001 0.001 ...
## $ Sodium (g) : num [1:58] 0.02 0.09 0.01 0.02 0.02 0.01 0.01 0.01 0.01 0.01 ...
## $ Zinc (mg) : num [1:58] 0.0007 0.0007 0.001 0.0007 0.0006 0.0015 0.0012 0.0004 0.0004 0.001 ...
## - attr(*, "spec")=
## .. cols(
## .. name = col_character(),
## .. emoji = col_character(),
## .. `Calories (kcal)` = col_double(),
## .. `Carbohydrates (g)` = col_double(),
## .. `Total Sugar (g)` = col_double(),
## .. `Protein (g)` = col_double(),
## .. `Total Fat (g)` = col_double(),
## .. `Saturated Fat (g)` = col_double(),
## .. `Monounsaturated Fat (g)` = col_double(),
## .. `Polyunsaturated Fat (g)` = col_double(),
## .. `Total Fiber (g)` = col_double(),
## .. `Cholesterol (mg)` = col_double(),
## .. `Vitamin B6 (mg)` = col_double(),
## .. `Vitamin A (IU)` = col_double(),
## .. `Vitamin B12 (ug)` = col_double(),
## .. `Vitamin C (mg)` = col_double(),
## .. `Vitamin D (IU)` = col_double(),
## .. `Vitamin E (IU)` = col_double(),
## .. `Vitamin K (ug)` = col_double(),
## .. `Thiamin (mg)` = col_double(),
## .. `Riboflavin (mg)` = col_double(),
## .. `Niacin (mg)` = col_double(),
## .. `Folate (ug)` = col_double(),
## .. `Pantothenic Acid (mg)` = col_double(),
## .. `Choline (mg)` = col_double(),
## .. `Calcium (g)` = col_double(),
## .. `Copper (mg)` = col_double(),
## .. `Iron (mg)` = col_double(),
## .. `Magnesium (mg)` = col_double(),
## .. `Manganese (mg)` = col_double(),
## .. `Phosphorus (g)` = col_double(),
## .. `Potassium (g)` = col_double(),
## .. `Selenium (ug)` = col_double(),
## .. `Sodium (g)` = col_double(),
## .. `Zinc (mg)` = col_double()
## .. )
Preparación de la Data para el dendrograma
summary(EmojisFood)
## name emoji Calories (kcal) Carbohydrates (g)
## Length:58 Length:58 Min. :0.010 Min. :0.00000
## Class :character Class :character 1st Qu.:0.540 1st Qu.:0.06822
## Mode :character Mode :character Median :1.395 Median :0.16070
## Mean :1.920 Mean :0.23736
## 3rd Qu.:2.735 3rd Qu.:0.30090
## Max. :8.980 Max. :0.98000
## Total Sugar (g) Protein (g) Total Fat (g) Saturated Fat (g)
## Min. :0.00000 Min. :0.000000 Min. :0.000000 Min. :0.0000000
## 1st Qu.:0.00000 1st Qu.:0.006825 1st Qu.:0.001825 1st Qu.:0.0002275
## Median :0.03080 Median :0.020050 Median :0.007250 Median :0.0008450
## Mean :0.08027 Mean :0.050148 Mean :0.084650 Mean :0.0279357
## 3rd Qu.:0.09440 3rd Qu.:0.069000 3rd Qu.:0.125875 3rd Qu.:0.0382100
## Max. :0.82120 Max. :0.274800 Max. :0.995000 Max. :0.3199100
## Monounsaturated Fat (g) Polyunsaturated Fat (g) Total Fiber (g)
## Min. :0.000000 Min. :0.00000 Min. :0.00000
## 1st Qu.:0.000115 1st Qu.:0.00053 1st Qu.:0.00000
## Median :0.001075 Median :0.00263 Median :0.01300
## Mean :0.033566 Mean :0.01470 Mean :0.01712
## 3rd Qu.:0.047095 3rd Qu.:0.01634 3rd Qu.:0.02600
## Max. :0.414350 Max. :0.15558 Max. :0.10000
## Cholesterol (mg) Vitamin B6 (mg) Vitamin A (IU) Vitamin B12 (ug)
## Min. :0.0000 Min. :0.0000000 Min. : 0.0000 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.0004425 1st Qu.: 0.0125 1st Qu.:0.00000
## Median :0.0000 Median :0.0006150 Median : 0.6100 Median :0.00000
## Mean :0.1774 Mean :0.0012533 Mean : 7.6895 Mean :0.00196
## 3rd Qu.:0.1625 3rd Qu.:0.0011175 3rd Qu.: 1.5725 3rd Qu.:0.00160
## Max. :1.2700 Max. :0.0075800 Max. :192.1800 Max. :0.03060
## Vitamin C (mg) Vitamin D (IU) Vitamin E (IU) Vitamin K (ug)
## Min. :0.00000 Min. :0.000000 Min. :0.000000 Min. :0.00000
## 1st Qu.:0.00000 1st Qu.:0.000000 1st Qu.:0.000000 1st Qu.:0.00000
## Median :0.00450 Median :0.000000 Median :0.001650 Median :0.00950
## Mean :0.10309 Mean :0.008793 Mean :0.004828 Mean :0.03960
## 3rd Qu.:0.06425 3rd Qu.:0.000000 3rd Qu.:0.005850 3rd Qu.:0.04625
## Max. :1.43700 Max. :0.290000 Max. :0.083300 Max. :0.40300
## Thiamin (mg) Riboflavin (mg) Niacin (mg) Folate (ug)
## Min. :0.0000000 Min. :0.0000000 Min. :0.000000 Min. :0.0000
## 1st Qu.:0.0002475 1st Qu.:0.0002525 1st Qu.:0.001653 1st Qu.:0.0525
## Median :0.0005750 Median :0.0005900 Median :0.006950 Median :0.1700
## Mean :0.0011545 Mean :0.0010841 Mean :0.015799 Mean :0.2907
## 3rd Qu.:0.0014325 3rd Qu.:0.0018575 3rd Qu.:0.018107 3rd Qu.:0.4175
## Max. :0.0071000 Max. :0.0042700 Max. :0.120660 Max. :2.4000
## Pantothenic Acid (mg) Choline (mg) Calcium (g) Copper (mg)
## Min. :0.000000 Min. :0.0000 Min. :0.0000 Min. :0.0000400
## 1st Qu.:0.000720 1st Qu.:0.0250 1st Qu.:0.0700 1st Qu.:0.0003875
## Median :0.002645 Median :0.0680 Median :0.1500 Median :0.0007750
## Mean :0.003723 Mean :0.1560 Mean :0.5391 Mean :0.0011453
## 3rd Qu.:0.004707 3rd Qu.:0.1835 3rd Qu.:0.4975 3rd Qu.:0.0012850
## Max. :0.017670 Max. :1.2840 Max. :8.9000 Max. :0.0114400
## Iron (mg) Magnesium (mg) Manganese (mg) Phosphorus (g)
## Min. :0.000000 Min. :0.0000 Min. :0.0000000 Min. :0.0100
## 1st Qu.:0.002525 1st Qu.:0.1000 1st Qu.:0.0004025 1st Qu.:0.2000
## Median :0.004350 Median :0.1350 Median :0.0013700 Median :0.4750
## Mean :0.009779 Mean :0.2362 Mean :0.0029674 Mean :0.8922
## 3rd Qu.:0.014375 3rd Qu.:0.2700 3rd Qu.:0.0031600 3rd Qu.:1.2275
## Max. :0.045800 Max. :1.6800 Max. :0.0407100 Max. :5.7400
## Potassium (g) Selenium (ug) Sodium (g) Zinc (mg)
## Min. :0.050 Min. :0.0000 Min. :0.000 Min. :0.000100
## 1st Qu.:1.130 1st Qu.:0.0020 1st Qu.:0.020 1st Qu.:0.001050
## Median :1.595 Median :0.0095 Median :0.135 Median :0.003500
## Mean :1.926 Mean :0.0710 Mean :1.480 Mean :0.007134
## 3rd Qu.:2.305 3rd Qu.:0.0960 3rd Qu.:2.138 3rd Qu.:0.006775
## Max. :7.050 Max. :0.3040 Max. :8.970 Max. :0.046900
#Se deben normalizar los datos
EmojiNorm <- scale(EmojisFood[c(3:35)])
summary(EmojiNorm)
## Calories (kcal) Carbohydrates (g) Total Sugar (g) Protein (g)
## Min. :-1.0639 Min. :-1.0219 Min. :-0.53076 Min. :-0.7405
## 1st Qu.:-0.7687 1st Qu.:-0.7282 1st Qu.:-0.53076 1st Qu.:-0.6398
## Median :-0.2925 Median :-0.3300 Median :-0.32710 Median :-0.4445
## Mean : 0.0000 Mean : 0.0000 Mean : 0.00000 Mean : 0.0000
## 3rd Qu.: 0.4538 3rd Qu.: 0.2736 3rd Qu.: 0.09345 3rd Qu.: 0.2784
## Max. : 3.9322 Max. : 3.1973 Max. : 4.89934 Max. : 3.3174
## Total Fat (g) Saturated Fat (g) Monounsaturated Fat (g)
## Min. :-0.5343 Min. :-0.5029 Min. :-0.4936
## 1st Qu.:-0.5228 1st Qu.:-0.4988 1st Qu.:-0.4919
## Median :-0.4885 Median :-0.4877 Median :-0.4778
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.2602 3rd Qu.: 0.1850 3rd Qu.: 0.1989
## Max. : 5.7458 Max. : 5.2561 Max. : 5.5993
## Polyunsaturated Fat (g) Total Fiber (g) Cholesterol (mg)
## Min. :-0.48592 Min. :-0.8385 Min. :-0.54253
## 1st Qu.:-0.46840 1st Qu.:-0.8385 1st Qu.:-0.54253
## Median :-0.39896 Median :-0.2018 Median :-0.54253
## Mean : 0.00000 Mean : 0.0000 Mean : 0.00000
## 3rd Qu.: 0.05455 3rd Qu.: 0.4349 3rd Qu.:-0.04561
## Max. : 4.65856 Max. : 4.0590 Max. : 3.34109
## Vitamin B6 (mg) Vitamin A (IU) Vitamin B12 (ug) Vitamin C (mg)
## Min. :-0.81610 Min. :-0.2333 Min. :-0.39416 Min. :-0.4132
## 1st Qu.:-0.52795 1st Qu.:-0.2329 1st Qu.:-0.39416 1st Qu.:-0.4132
## Median :-0.41563 Median :-0.2148 Median :-0.39416 Median :-0.3951
## Mean : 0.00000 Mean : 0.0000 Mean : 0.00000 Mean : 0.0000
## 3rd Qu.:-0.08841 3rd Qu.:-0.1856 3rd Qu.:-0.07245 3rd Qu.:-0.1557
## Max. : 4.11979 Max. : 5.5979 Max. : 5.75848 Max. : 5.3463
## Vitamin D (IU) Vitamin E (IU) Vitamin K (ug) Thiamin (mg)
## Min. :-0.2218 Min. :-0.41123 Min. :-0.56700 Min. :-0.7580
## 1st Qu.:-0.2218 1st Qu.:-0.41123 1st Qu.:-0.56700 1st Qu.:-0.5955
## Median :-0.2218 Median :-0.27068 Median :-0.43099 Median :-0.3805
## Mean : 0.0000 Mean : 0.00000 Mean : 0.00000 Mean : 0.0000
## 3rd Qu.:-0.2218 3rd Qu.: 0.08709 3rd Qu.: 0.09516 3rd Qu.: 0.1825
## Max. : 7.0921 Max. : 6.68453 Max. : 5.20270 Max. : 3.9035
## Riboflavin (mg) Niacin (mg) Folate (ug) Pantothenic Acid (mg)
## Min. :-1.0235 Min. :-0.7268 Min. :-0.7362 Min. :-0.8894
## 1st Qu.:-0.7851 1st Qu.:-0.6508 1st Qu.:-0.6032 1st Qu.:-0.7173
## Median :-0.4665 Median :-0.4071 Median :-0.3056 Median :-0.2574
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.7301 3rd Qu.: 0.1062 3rd Qu.: 0.3211 3rd Qu.: 0.2353
## Max. : 3.0077 Max. : 4.8244 Max. : 5.3418 Max. : 3.3322
## Choline (mg) Calcium (g) Copper (mg) Iron (mg)
## Min. :-0.6944 Min. :-0.43652 Min. :-0.68044 Min. :-0.8899
## 1st Qu.:-0.5831 1st Qu.:-0.37984 1st Qu.:-0.46652 1st Qu.:-0.6601
## Median :-0.3917 Median :-0.31507 Median :-0.22798 Median :-0.4940
## Mean : 0.0000 Mean : 0.00000 Mean : 0.00000 Mean : 0.0000
## 3rd Qu.: 0.1226 3rd Qu.:-0.03371 3rd Qu.: 0.08597 3rd Qu.: 0.4182
## Max. : 5.0225 Max. : 6.76942 Max. : 6.33731 Max. : 3.2778
## Magnesium (mg) Manganese (mg) Phosphorus (g) Potassium (g)
## Min. :-0.7685 Min. :-0.49738 Min. :-0.8269 Min. :-1.3421
## 1st Qu.:-0.4432 1st Qu.:-0.42991 1st Qu.:-0.6489 1st Qu.:-0.5695
## Median :-0.3293 Median :-0.26775 Median :-0.3911 Median :-0.2368
## Mean : 0.0000 Mean : 0.00000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.1100 3rd Qu.: 0.03228 3rd Qu.: 0.3142 3rd Qu.: 0.2711
## Max. : 4.6976 Max. : 6.32613 Max. : 4.5439 Max. : 3.6656
## Selenium (ug) Sodium (g) Zinc (mg)
## Min. :-0.7164 Min. :-0.6320 Min. :-0.68967
## 1st Qu.:-0.6962 1st Qu.:-0.6234 1st Qu.:-0.59653
## Median :-0.6205 Median :-0.5743 Median :-0.35633
## Mean : 0.0000 Mean : 0.0000 Mean : 0.00000
## 3rd Qu.: 0.2522 3rd Qu.: 0.2810 3rd Qu.:-0.03524
## Max. : 2.3510 Max. : 3.1993 Max. : 3.89868
#Asignamos el nombre de las filas
rownames(EmojiNorm)<-EmojisFood$name
#Calculamos las distancias entre los elementos
EmojiDistancias <-dist(EmojiNorm)
#No se pueden calcular distancias con datos que no son numericos, por eso se seleccionan solo las columnas numericas
#Agrupamiento jerarquico
clusters <- hclust(EmojiDistancias)
#clusters$order #Elementos ordenador de mayor a meno
#clusters$high #las alturas del dendograma definido por las distancias
Dendrograma
library(ggdendro)
dendrograma<-ggdendrogram(clusters)
dendrograma

Dendrograma con los nombres y los emojis
library(stringi)
#Funcion 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)
}
labels<-trimEmojiCode(EmojisFood[,c(1,2)],clusters$order)
library(ggplot2)
library(httr)
library(ggimage)
dendrograma <- ggdendrogram (clusters, size=1.5)
dendrograma <- dendrograma + geom_emoji(data=labels, aes(id,-1,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

Dendrograma con solo los emojis
#Se deben normalizar los datos
EmojiNorm <- scale(EmojisFood[c(3:35)])
#Asignamos el nombre de las filas
rownames(EmojiNorm)<-EmojisFood$emoji
#Calculamos las distancias entre los elementos
EmojiDistancias <-dist(EmojiNorm)
#Agrupamiento jerarquico
clusters <- hclust(EmojiDistancias)
dendrograma<-ggdendrogram(clusters)
dendrograma
