library('ggplot2')
## Warning: package 'ggplot2' was built under R version 4.0.5
head(mpg)
## # A tibble: 6 x 11
##   manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class 
##   <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr> 
## 1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compa~
## 2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compa~
## 3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compa~
## 4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compa~
## 5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compa~
## 6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compa~
# subset por año
mpg1999 <- subset(mpg,mpg$year == 1999 & mpg$class=='suv')

# seleccionar casos con datos en todas las columnas
mpg1999 <- mpg1999[complete.cases(mpg1999),]

# Normalizar columnas numericas
mpg1999N <- scale(mpg1999[,c(3,5,8,9)])

# # crear columna con secuencia de números
# mpg1999N$ID <- seq(1,nrow(mpg1999N))
# # pegar la marca al numero de sequencia creado 
# mpg1999N$ID <- do.call(paste0,mpg1999N[c(1,12)])
# renombrar las filas
rownames(mpg1999N) <- mpg1999$model

head(mpg1999,3)
## # A tibble: 3 x 11
##   manufacturer model      displ  year   cyl trans  drv     cty   hwy fl    class
##   <chr>        <chr>      <dbl> <int> <int> <chr>  <chr> <int> <int> <chr> <chr>
## 1 chevrolet    c1500 sub~   5.7  1999     8 auto(~ r        13    17 r     suv  
## 2 chevrolet    k1500 tah~   5.7  1999     8 auto(~ 4        11    15 r     suv  
## 3 chevrolet    k1500 tah~   6.5  1999     8 auto(~ 4        14    17 d     suv
# distancias
mpg1999D <- dist(mpg1999N)
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.0.5
# convierte el formato del dataframe de wide a long
mpg1999DLong <- melt(data.matrix(mpg1999D))
head(mpg1999DLong)
##                 Var1               Var2     value
## 1 c1500 suburban 2wd c1500 suburban 2wd 0.0000000
## 2    k1500 tahoe 4wd c1500 suburban 2wd 1.2618025
## 3    k1500 tahoe 4wd c1500 suburban 2wd 0.8746882
## 4        durango 4wd c1500 suburban 2wd 2.1508185
## 5        durango 4wd c1500 suburban 2wd 1.1323440
## 6        durango 4wd c1500 suburban 2wd 1.2751250
grafico <- ggplot(mpg1999DLong, aes(Var1, Var2, fill=value)) 
grafico <- grafico + geom_tile()
grafico <- grafico + scale_fill_viridis_c(option = 'magma')
# grafico <- grafico + scale_fill_distiller(palette = "Oranges")
grafico <- grafico + theme(axis.text.x = element_text(angle = 90))
grafico

# Dendograma
mpg1999Clusrters <- hclust(mpg1999D)

library(ggdendro)
## Warning: package 'ggdendro' was built under R version 4.0.5
grafico <- ggdendrogram(mpg1999Clusrters, size=2)
grafico