# Contexto Estos datos son el resultado de un analisis quimico de vinos cultivados en la misma region de Italia
Pero derivados de tres cultivares distintos

Librerias

#install.packages("Cluster") # para agrupamiento
library(cluster)
#install.packages("ggplot2")
library(ggplot2)
#install.packages("factoextra") # visualizar cluster
library(factoextra)
#install.packages("data.table") # Conjunto de datos grande
library(data.table)
library(tidyverse)

Importa la base de datos

datos <- read.csv("~/Documents/Clases/Semestre 6/R clase eeee/wine_dataset.csv")
datos
##     alcohol malic_acid  ash alcalinity_of_ash magnesium total_phenols
## 1     14.23       1.71 2.43              15.6       127          2.80
## 2     13.20       1.78 2.14              11.2       100          2.65
## 3     13.16       2.36 2.67              18.6       101          2.80
## 4     14.37       1.95 2.50              16.8       113          3.85
## 5     13.24       2.59 2.87              21.0       118          2.80
## 6     14.20       1.76 2.45              15.2       112          3.27
## 7     14.39       1.87 2.45              14.6        96          2.50
## 8     14.06       2.15 2.61              17.6       121          2.60
## 9     14.83       1.64 2.17              14.0        97          2.80
## 10    13.86       1.35 2.27              16.0        98          2.98
## 11    14.10       2.16 2.30              18.0       105          2.95
## 12    14.12       1.48 2.32              16.8        95          2.20
## 13    13.75       1.73 2.41              16.0        89          2.60
## 14    14.75       1.73 2.39              11.4        91          3.10
## 15    14.38       1.87 2.38              12.0       102          3.30
## 16    13.63       1.81 2.70              17.2       112          2.85
## 17    14.30       1.92 2.72              20.0       120          2.80
## 18    13.83       1.57 2.62              20.0       115          2.95
## 19    14.19       1.59 2.48              16.5       108          3.30
## 20    13.64       3.10 2.56              15.2       116          2.70
## 21    14.06       1.63 2.28              16.0       126          3.00
## 22    12.93       3.80 2.65              18.6       102          2.41
## 23    13.71       1.86 2.36              16.6       101          2.61
## 24    12.85       1.60 2.52              17.8        95          2.48
## 25    13.50       1.81 2.61              20.0        96          2.53
## 26    13.05       2.05 3.22              25.0       124          2.63
## 27    13.39       1.77 2.62              16.1        93          2.85
## 28    13.30       1.72 2.14              17.0        94          2.40
## 29    13.87       1.90 2.80              19.4       107          2.95
## 30    14.02       1.68 2.21              16.0        96          2.65
## 31    13.73       1.50 2.70              22.5       101          3.00
## 32    13.58       1.66 2.36              19.1       106          2.86
## 33    13.68       1.83 2.36              17.2       104          2.42
## 34    13.76       1.53 2.70              19.5       132          2.95
## 35    13.51       1.80 2.65              19.0       110          2.35
## 36    13.48       1.81 2.41              20.5       100          2.70
## 37    13.28       1.64 2.84              15.5       110          2.60
## 38    13.05       1.65 2.55              18.0        98          2.45
## 39    13.07       1.50 2.10              15.5        98          2.40
## 40    14.22       3.99 2.51              13.2       128          3.00
## 41    13.56       1.71 2.31              16.2       117          3.15
## 42    13.41       3.84 2.12              18.8        90          2.45
## 43    13.88       1.89 2.59              15.0       101          3.25
## 44    13.24       3.98 2.29              17.5       103          2.64
## 45    13.05       1.77 2.10              17.0       107          3.00
## 46    14.21       4.04 2.44              18.9       111          2.85
## 47    14.38       3.59 2.28              16.0       102          3.25
## 48    13.90       1.68 2.12              16.0       101          3.10
## 49    14.10       2.02 2.40              18.8       103          2.75
## 50    13.94       1.73 2.27              17.4       108          2.88
## 51    13.05       1.73 2.04              12.4        92          2.72
## 52    13.83       1.65 2.60              17.2        94          2.45
## 53    13.82       1.75 2.42              14.0       111          3.88
## 54    13.77       1.90 2.68              17.1       115          3.00
## 55    13.74       1.67 2.25              16.4       118          2.60
## 56    13.56       1.73 2.46              20.5       116          2.96
## 57    14.22       1.70 2.30              16.3       118          3.20
## 58    13.29       1.97 2.68              16.8       102          3.00
## 59    13.72       1.43 2.50              16.7       108          3.40
## 60    12.37       0.94 1.36              10.6        88          1.98
## 61    12.33       1.10 2.28              16.0       101          2.05
## 62    12.64       1.36 2.02              16.8       100          2.02
## 63    13.67       1.25 1.92              18.0        94          2.10
## 64    12.37       1.13 2.16              19.0        87          3.50
## 65    12.17       1.45 2.53              19.0       104          1.89
## 66    12.37       1.21 2.56              18.1        98          2.42
## 67    13.11       1.01 1.70              15.0        78          2.98
## 68    12.37       1.17 1.92              19.6        78          2.11
## 69    13.34       0.94 2.36              17.0       110          2.53
## 70    12.21       1.19 1.75              16.8       151          1.85
## 71    12.29       1.61 2.21              20.4       103          1.10
## 72    13.86       1.51 2.67              25.0        86          2.95
## 73    13.49       1.66 2.24              24.0        87          1.88
## 74    12.99       1.67 2.60              30.0       139          3.30
## 75    11.96       1.09 2.30              21.0       101          3.38
## 76    11.66       1.88 1.92              16.0        97          1.61
## 77    13.03       0.90 1.71              16.0        86          1.95
## 78    11.84       2.89 2.23              18.0       112          1.72
## 79    12.33       0.99 1.95              14.8       136          1.90
## 80    12.70       3.87 2.40              23.0       101          2.83
## 81    12.00       0.92 2.00              19.0        86          2.42
## 82    12.72       1.81 2.20              18.8        86          2.20
## 83    12.08       1.13 2.51              24.0        78          2.00
## 84    13.05       3.86 2.32              22.5        85          1.65
## 85    11.84       0.89 2.58              18.0        94          2.20
## 86    12.67       0.98 2.24              18.0        99          2.20
## 87    12.16       1.61 2.31              22.8        90          1.78
## 88    11.65       1.67 2.62              26.0        88          1.92
## 89    11.64       2.06 2.46              21.6        84          1.95
## 90    12.08       1.33 2.30              23.6        70          2.20
## 91    12.08       1.83 2.32              18.5        81          1.60
## 92    12.00       1.51 2.42              22.0        86          1.45
## 93    12.69       1.53 2.26              20.7        80          1.38
## 94    12.29       2.83 2.22              18.0        88          2.45
## 95    11.62       1.99 2.28              18.0        98          3.02
## 96    12.47       1.52 2.20              19.0       162          2.50
## 97    11.81       2.12 2.74              21.5       134          1.60
## 98    12.29       1.41 1.98              16.0        85          2.55
## 99    12.37       1.07 2.10              18.5        88          3.52
## 100   12.29       3.17 2.21              18.0        88          2.85
## 101   12.08       2.08 1.70              17.5        97          2.23
## 102   12.60       1.34 1.90              18.5        88          1.45
## 103   12.34       2.45 2.46              21.0        98          2.56
## 104   11.82       1.72 1.88              19.5        86          2.50
## 105   12.51       1.73 1.98              20.5        85          2.20
## 106   12.42       2.55 2.27              22.0        90          1.68
## 107   12.25       1.73 2.12              19.0        80          1.65
## 108   12.72       1.75 2.28              22.5        84          1.38
## 109   12.22       1.29 1.94              19.0        92          2.36
## 110   11.61       1.35 2.70              20.0        94          2.74
## 111   11.46       3.74 1.82              19.5       107          3.18
## 112   12.52       2.43 2.17              21.0        88          2.55
## 113   11.76       2.68 2.92              20.0       103          1.75
## 114   11.41       0.74 2.50              21.0        88          2.48
## 115   12.08       1.39 2.50              22.5        84          2.56
## 116   11.03       1.51 2.20              21.5        85          2.46
## 117   11.82       1.47 1.99              20.8        86          1.98
## 118   12.42       1.61 2.19              22.5       108          2.00
## 119   12.77       3.43 1.98              16.0        80          1.63
## 120   12.00       3.43 2.00              19.0        87          2.00
## 121   11.45       2.40 2.42              20.0        96          2.90
## 122   11.56       2.05 3.23              28.5       119          3.18
## 123   12.42       4.43 2.73              26.5       102          2.20
## 124   13.05       5.80 2.13              21.5        86          2.62
## 125   11.87       4.31 2.39              21.0        82          2.86
## 126   12.07       2.16 2.17              21.0        85          2.60
## 127   12.43       1.53 2.29              21.5        86          2.74
## 128   11.79       2.13 2.78              28.5        92          2.13
## 129   12.37       1.63 2.30              24.5        88          2.22
## 130   12.04       4.30 2.38              22.0        80          2.10
## 131   12.86       1.35 2.32              18.0       122          1.51
## 132   12.88       2.99 2.40              20.0       104          1.30
## 133   12.81       2.31 2.40              24.0        98          1.15
## 134   12.70       3.55 2.36              21.5       106          1.70
## 135   12.51       1.24 2.25              17.5        85          2.00
## 136   12.60       2.46 2.20              18.5        94          1.62
## 137   12.25       4.72 2.54              21.0        89          1.38
## 138   12.53       5.51 2.64              25.0        96          1.79
## 139   13.49       3.59 2.19              19.5        88          1.62
## 140   12.84       2.96 2.61              24.0       101          2.32
## 141   12.93       2.81 2.70              21.0        96          1.54
## 142   13.36       2.56 2.35              20.0        89          1.40
## 143   13.52       3.17 2.72              23.5        97          1.55
## 144   13.62       4.95 2.35              20.0        92          2.00
## 145   12.25       3.88 2.20              18.5       112          1.38
## 146   13.16       3.57 2.15              21.0       102          1.50
## 147   13.88       5.04 2.23              20.0        80          0.98
## 148   12.87       4.61 2.48              21.5        86          1.70
## 149   13.32       3.24 2.38              21.5        92          1.93
## 150   13.08       3.90 2.36              21.5       113          1.41
## 151   13.50       3.12 2.62              24.0       123          1.40
## 152   12.79       2.67 2.48              22.0       112          1.48
## 153   13.11       1.90 2.75              25.5       116          2.20
## 154   13.23       3.30 2.28              18.5        98          1.80
## 155   12.58       1.29 2.10              20.0       103          1.48
## 156   13.17       5.19 2.32              22.0        93          1.74
## 157   13.84       4.12 2.38              19.5        89          1.80
## 158   12.45       3.03 2.64              27.0        97          1.90
## 159   14.34       1.68 2.70              25.0        98          2.80
## 160   13.48       1.67 2.64              22.5        89          2.60
## 161   12.36       3.83 2.38              21.0        88          2.30
## 162   13.69       3.26 2.54              20.0       107          1.83
## 163   12.85       3.27 2.58              22.0       106          1.65
## 164   12.96       3.45 2.35              18.5       106          1.39
## 165   13.78       2.76 2.30              22.0        90          1.35
## 166   13.73       4.36 2.26              22.5        88          1.28
## 167   13.45       3.70 2.60              23.0       111          1.70
## 168   12.82       3.37 2.30              19.5        88          1.48
## 169   13.58       2.58 2.69              24.5       105          1.55
## 170   13.40       4.60 2.86              25.0       112          1.98
## 171   12.20       3.03 2.32              19.0        96          1.25
## 172   12.77       2.39 2.28              19.5        86          1.39
## 173   14.16       2.51 2.48              20.0        91          1.68
## 174   13.71       5.65 2.45              20.5        95          1.68
## 175   13.40       3.91 2.48              23.0       102          1.80
## 176   13.27       4.28 2.26              20.0       120          1.59
## 177   13.17       2.59 2.37              20.0       120          1.65
## 178   14.13       4.10 2.74              24.5        96          2.05
##     flavanoids nonflavanoid_phenols proanthocyanins color_intensity   hue
## 1         3.06                 0.28            2.29        5.640000 1.040
## 2         2.76                 0.26            1.28        4.380000 1.050
## 3         3.24                 0.30            2.81        5.680000 1.030
## 4         3.49                 0.24            2.18        7.800000 0.860
## 5         2.69                 0.39            1.82        4.320000 1.040
## 6         3.39                 0.34            1.97        6.750000 1.050
## 7         2.52                 0.30            1.98        5.250000 1.020
## 8         2.51                 0.31            1.25        5.050000 1.060
## 9         2.98                 0.29            1.98        5.200000 1.080
## 10        3.15                 0.22            1.85        7.220000 1.010
## 11        3.32                 0.22            2.38        5.750000 1.250
## 12        2.43                 0.26            1.57        5.000000 1.170
## 13        2.76                 0.29            1.81        5.600000 1.150
## 14        3.69                 0.43            2.81        5.400000 1.250
## 15        3.64                 0.29            2.96        7.500000 1.200
## 16        2.91                 0.30            1.46        7.300000 1.280
## 17        3.14                 0.33            1.97        6.200000 1.070
## 18        3.40                 0.40            1.72        6.600000 1.130
## 19        3.93                 0.32            1.86        8.700000 1.230
## 20        3.03                 0.17            1.66        5.100000 0.960
## 21        3.17                 0.24            2.10        5.650000 1.090
## 22        2.41                 0.25            1.98        4.500000 1.030
## 23        2.88                 0.27            1.69        3.800000 1.110
## 24        2.37                 0.26            1.46        3.930000 1.090
## 25        2.61                 0.28            1.66        3.520000 1.120
## 26        2.68                 0.47            1.92        3.580000 1.130
## 27        2.94                 0.34            1.45        4.800000 0.920
## 28        2.19                 0.27            1.35        3.950000 1.020
## 29        2.97                 0.37            1.76        4.500000 1.250
## 30        2.33                 0.26            1.98        4.700000 1.040
## 31        3.25                 0.29            2.38        5.700000 1.190
## 32        3.19                 0.22            1.95        6.900000 1.090
## 33        2.69                 0.42            1.97        3.840000 1.230
## 34        2.74                 0.50            1.35        5.400000 1.250
## 35        2.53                 0.29            1.54        4.200000 1.100
## 36        2.98                 0.26            1.86        5.100000 1.040
## 37        2.68                 0.34            1.36        4.600000 1.090
## 38        2.43                 0.29            1.44        4.250000 1.120
## 39        2.64                 0.28            1.37        3.700000 1.180
## 40        3.04                 0.20            2.08        5.100000 0.890
## 41        3.29                 0.34            2.34        6.130000 0.950
## 42        2.68                 0.27            1.48        4.280000 0.910
## 43        3.56                 0.17            1.70        5.430000 0.880
## 44        2.63                 0.32            1.66        4.360000 0.820
## 45        3.00                 0.28            2.03        5.040000 0.880
## 46        2.65                 0.30            1.25        5.240000 0.870
## 47        3.17                 0.27            2.19        4.900000 1.040
## 48        3.39                 0.21            2.14        6.100000 0.910
## 49        2.92                 0.32            2.38        6.200000 1.070
## 50        3.54                 0.32            2.08        8.900000 1.120
## 51        3.27                 0.17            2.91        7.200000 1.120
## 52        2.99                 0.22            2.29        5.600000 1.240
## 53        3.74                 0.32            1.87        7.050000 1.010
## 54        2.79                 0.39            1.68        6.300000 1.130
## 55        2.90                 0.21            1.62        5.850000 0.920
## 56        2.78                 0.20            2.45        6.250000 0.980
## 57        3.00                 0.26            2.03        6.380000 0.940
## 58        3.23                 0.31            1.66        6.000000 1.070
## 59        3.67                 0.19            2.04        6.800000 0.890
## 60        0.57                 0.28            0.42        1.950000 1.050
## 61        1.09                 0.63            0.41        3.270000 1.250
## 62        1.41                 0.53            0.62        5.750000 0.980
## 63        1.79                 0.32            0.73        3.800000 1.230
## 64        3.10                 0.19            1.87        4.450000 1.220
## 65        1.75                 0.45            1.03        2.950000 1.450
## 66        2.65                 0.37            2.08        4.600000 1.190
## 67        3.18                 0.26            2.28        5.300000 1.120
## 68        2.00                 0.27            1.04        4.680000 1.120
## 69        1.30                 0.55            0.42        3.170000 1.020
## 70        1.28                 0.14            2.50        2.850000 1.280
## 71        1.02                 0.37            1.46        3.050000 0.906
## 72        2.86                 0.21            1.87        3.380000 1.360
## 73        1.84                 0.27            1.03        3.740000 0.980
## 74        2.89                 0.21            1.96        3.350000 1.310
## 75        2.14                 0.13            1.65        3.210000 0.990
## 76        1.57                 0.34            1.15        3.800000 1.230
## 77        2.03                 0.24            1.46        4.600000 1.190
## 78        1.32                 0.43            0.95        2.650000 0.960
## 79        1.85                 0.35            2.76        3.400000 1.060
## 80        2.55                 0.43            1.95        2.570000 1.190
## 81        2.26                 0.30            1.43        2.500000 1.380
## 82        2.53                 0.26            1.77        3.900000 1.160
## 83        1.58                 0.40            1.40        2.200000 1.310
## 84        1.59                 0.61            1.62        4.800000 0.840
## 85        2.21                 0.22            2.35        3.050000 0.790
## 86        1.94                 0.30            1.46        2.620000 1.230
## 87        1.69                 0.43            1.56        2.450000 1.330
## 88        1.61                 0.40            1.34        2.600000 1.360
## 89        1.69                 0.48            1.35        2.800000 1.000
## 90        1.59                 0.42            1.38        1.740000 1.070
## 91        1.50                 0.52            1.64        2.400000 1.080
## 92        1.25                 0.50            1.63        3.600000 1.050
## 93        1.46                 0.58            1.62        3.050000 0.960
## 94        2.25                 0.25            1.99        2.150000 1.150
## 95        2.26                 0.17            1.35        3.250000 1.160
## 96        2.27                 0.32            3.28        2.600000 1.160
## 97        0.99                 0.14            1.56        2.500000 0.950
## 98        2.50                 0.29            1.77        2.900000 1.230
## 99        3.75                 0.24            1.95        4.500000 1.040
## 100       2.99                 0.45            2.81        2.300000 1.420
## 101       2.17                 0.26            1.40        3.300000 1.270
## 102       1.36                 0.29            1.35        2.450000 1.040
## 103       2.11                 0.34            1.31        2.800000 0.800
## 104       1.64                 0.37            1.42        2.060000 0.940
## 105       1.92                 0.32            1.48        2.940000 1.040
## 106       1.84                 0.66            1.42        2.700000 0.860
## 107       2.03                 0.37            1.63        3.400000 1.000
## 108       1.76                 0.48            1.63        3.300000 0.880
## 109       2.04                 0.39            2.08        2.700000 0.860
## 110       2.92                 0.29            2.49        2.650000 0.960
## 111       2.58                 0.24            3.58        2.900000 0.750
## 112       2.27                 0.26            1.22        2.000000 0.900
## 113       2.03                 0.60            1.05        3.800000 1.230
## 114       2.01                 0.42            1.44        3.080000 1.100
## 115       2.29                 0.43            1.04        2.900000 0.930
## 116       2.17                 0.52            2.01        1.900000 1.710
## 117       1.60                 0.30            1.53        1.950000 0.950
## 118       2.09                 0.34            1.61        2.060000 1.060
## 119       1.25                 0.43            0.83        3.400000 0.700
## 120       1.64                 0.37            1.87        1.280000 0.930
## 121       2.79                 0.32            1.83        3.250000 0.800
## 122       5.08                 0.47            1.87        6.000000 0.930
## 123       2.13                 0.43            1.71        2.080000 0.920
## 124       2.65                 0.30            2.01        2.600000 0.730
## 125       3.03                 0.21            2.91        2.800000 0.750
## 126       2.65                 0.37            1.35        2.760000 0.860
## 127       3.15                 0.39            1.77        3.940000 0.690
## 128       2.24                 0.58            1.76        3.000000 0.970
## 129       2.45                 0.40            1.90        2.120000 0.890
## 130       1.75                 0.42            1.35        2.600000 0.790
## 131       1.25                 0.21            0.94        4.100000 0.760
## 132       1.22                 0.24            0.83        5.400000 0.740
## 133       1.09                 0.27            0.83        5.700000 0.660
## 134       1.20                 0.17            0.84        5.000000 0.780
## 135       0.58                 0.60            1.25        5.450000 0.750
## 136       0.66                 0.63            0.94        7.100000 0.730
## 137       0.47                 0.53            0.80        3.850000 0.750
## 138       0.60                 0.63            1.10        5.000000 0.820
## 139       0.48                 0.58            0.88        5.700000 0.810
## 140       0.60                 0.53            0.81        4.920000 0.890
## 141       0.50                 0.53            0.75        4.600000 0.770
## 142       0.50                 0.37            0.64        5.600000 0.700
## 143       0.52                 0.50            0.55        4.350000 0.890
## 144       0.80                 0.47            1.02        4.400000 0.910
## 145       0.78                 0.29            1.14        8.210000 0.650
## 146       0.55                 0.43            1.30        4.000000 0.600
## 147       0.34                 0.40            0.68        4.900000 0.580
## 148       0.65                 0.47            0.86        7.650000 0.540
## 149       0.76                 0.45            1.25        8.420000 0.550
## 150       1.39                 0.34            1.14        9.400000 0.570
## 151       1.57                 0.22            1.25        8.600000 0.590
## 152       1.36                 0.24            1.26       10.800000 0.480
## 153       1.28                 0.26            1.56        7.100000 0.610
## 154       0.83                 0.61            1.87       10.520000 0.560
## 155       0.58                 0.53            1.40        7.600000 0.580
## 156       0.63                 0.61            1.55        7.900000 0.600
## 157       0.83                 0.48            1.56        9.010000 0.570
## 158       0.58                 0.63            1.14        7.500000 0.670
## 159       1.31                 0.53            2.70       13.000000 0.570
## 160       1.10                 0.52            2.29       11.750000 0.570
## 161       0.92                 0.50            1.04        7.650000 0.560
## 162       0.56                 0.50            0.80        5.880000 0.960
## 163       0.60                 0.60            0.96        5.580000 0.870
## 164       0.70                 0.40            0.94        5.280000 0.680
## 165       0.68                 0.41            1.03        9.580000 0.700
## 166       0.47                 0.52            1.15        6.620000 0.780
## 167       0.92                 0.43            1.46       10.680000 0.850
## 168       0.66                 0.40            0.97       10.260000 0.720
## 169       0.84                 0.39            1.54        8.660000 0.740
## 170       0.96                 0.27            1.11        8.500000 0.670
## 171       0.49                 0.40            0.73        5.500000 0.660
## 172       0.51                 0.48            0.64        9.899999 0.570
## 173       0.70                 0.44            1.24        9.700000 0.620
## 174       0.61                 0.52            1.06        7.700000 0.640
## 175       0.75                 0.43            1.41        7.300000 0.700
## 176       0.69                 0.43            1.35       10.200000 0.590
## 177       0.68                 0.53            1.46        9.300000 0.600
## 178       0.76                 0.56            1.35        9.200000 0.610
##     od280.od315_of_diluted_wines proline target
## 1                           3.92    1065      0
## 2                           3.40    1050      0
## 3                           3.17    1185      0
## 4                           3.45    1480      0
## 5                           2.93     735      0
## 6                           2.85    1450      0
## 7                           3.58    1290      0
## 8                           3.58    1295      0
## 9                           2.85    1045      0
## 10                          3.55    1045      0
## 11                          3.17    1510      0
## 12                          2.82    1280      0
## 13                          2.90    1320      0
## 14                          2.73    1150      0
## 15                          3.00    1547      0
## 16                          2.88    1310      0
## 17                          2.65    1280      0
## 18                          2.57    1130      0
## 19                          2.82    1680      0
## 20                          3.36     845      0
## 21                          3.71     780      0
## 22                          3.52     770      0
## 23                          4.00    1035      0
## 24                          3.63    1015      0
## 25                          3.82     845      0
## 26                          3.20     830      0
## 27                          3.22    1195      0
## 28                          2.77    1285      0
## 29                          3.40     915      0
## 30                          3.59    1035      0
## 31                          2.71    1285      0
## 32                          2.88    1515      0
## 33                          2.87     990      0
## 34                          3.00    1235      0
## 35                          2.87    1095      0
## 36                          3.47     920      0
## 37                          2.78     880      0
## 38                          2.51    1105      0
## 39                          2.69    1020      0
## 40                          3.53     760      0
## 41                          3.38     795      0
## 42                          3.00    1035      0
## 43                          3.56    1095      0
## 44                          3.00     680      0
## 45                          3.35     885      0
## 46                          3.33    1080      0
## 47                          3.44    1065      0
## 48                          3.33     985      0
## 49                          2.75    1060      0
## 50                          3.10    1260      0
## 51                          2.91    1150      0
## 52                          3.37    1265      0
## 53                          3.26    1190      0
## 54                          2.93    1375      0
## 55                          3.20    1060      0
## 56                          3.03    1120      0
## 57                          3.31     970      0
## 58                          2.84    1270      0
## 59                          2.87    1285      0
## 60                          1.82     520      1
## 61                          1.67     680      1
## 62                          1.59     450      1
## 63                          2.46     630      1
## 64                          2.87     420      1
## 65                          2.23     355      1
## 66                          2.30     678      1
## 67                          3.18     502      1
## 68                          3.48     510      1
## 69                          1.93     750      1
## 70                          3.07     718      1
## 71                          1.82     870      1
## 72                          3.16     410      1
## 73                          2.78     472      1
## 74                          3.50     985      1
## 75                          3.13     886      1
## 76                          2.14     428      1
## 77                          2.48     392      1
## 78                          2.52     500      1
## 79                          2.31     750      1
## 80                          3.13     463      1
## 81                          3.12     278      1
## 82                          3.14     714      1
## 83                          2.72     630      1
## 84                          2.01     515      1
## 85                          3.08     520      1
## 86                          3.16     450      1
## 87                          2.26     495      1
## 88                          3.21     562      1
## 89                          2.75     680      1
## 90                          3.21     625      1
## 91                          2.27     480      1
## 92                          2.65     450      1
## 93                          2.06     495      1
## 94                          3.30     290      1
## 95                          2.96     345      1
## 96                          2.63     937      1
## 97                          2.26     625      1
## 98                          2.74     428      1
## 99                          2.77     660      1
## 100                         2.83     406      1
## 101                         2.96     710      1
## 102                         2.77     562      1
## 103                         3.38     438      1
## 104                         2.44     415      1
## 105                         3.57     672      1
## 106                         3.30     315      1
## 107                         3.17     510      1
## 108                         2.42     488      1
## 109                         3.02     312      1
## 110                         3.26     680      1
## 111                         2.81     562      1
## 112                         2.78     325      1
## 113                         2.50     607      1
## 114                         2.31     434      1
## 115                         3.19     385      1
## 116                         2.87     407      1
## 117                         3.33     495      1
## 118                         2.96     345      1
## 119                         2.12     372      1
## 120                         3.05     564      1
## 121                         3.39     625      1
## 122                         3.69     465      1
## 123                         3.12     365      1
## 124                         3.10     380      1
## 125                         3.64     380      1
## 126                         3.28     378      1
## 127                         2.84     352      1
## 128                         2.44     466      1
## 129                         2.78     342      1
## 130                         2.57     580      1
## 131                         1.29     630      2
## 132                         1.42     530      2
## 133                         1.36     560      2
## 134                         1.29     600      2
## 135                         1.51     650      2
## 136                         1.58     695      2
## 137                         1.27     720      2
## 138                         1.69     515      2
## 139                         1.82     580      2
## 140                         2.15     590      2
## 141                         2.31     600      2
## 142                         2.47     780      2
## 143                         2.06     520      2
## 144                         2.05     550      2
## 145                         2.00     855      2
## 146                         1.68     830      2
## 147                         1.33     415      2
## 148                         1.86     625      2
## 149                         1.62     650      2
## 150                         1.33     550      2
## 151                         1.30     500      2
## 152                         1.47     480      2
## 153                         1.33     425      2
## 154                         1.51     675      2
## 155                         1.55     640      2
## 156                         1.48     725      2
## 157                         1.64     480      2
## 158                         1.73     880      2
## 159                         1.96     660      2
## 160                         1.78     620      2
## 161                         1.58     520      2
## 162                         1.82     680      2
## 163                         2.11     570      2
## 164                         1.75     675      2
## 165                         1.68     615      2
## 166                         1.75     520      2
## 167                         1.56     695      2
## 168                         1.75     685      2
## 169                         1.80     750      2
## 170                         1.92     630      2
## 171                         1.83     510      2
## 172                         1.63     470      2
## 173                         1.71     660      2
## 174                         1.74     740      2
## 175                         1.56     750      2
## 176                         1.56     835      2
## 177                         1.62     840      2
## 178                         1.60     560      2

Entender la base de datos/span>

summary(datos)
##     alcohol        malic_acid         ash        alcalinity_of_ash
##  Min.   :11.03   Min.   :0.740   Min.   :1.360   Min.   :10.60    
##  1st Qu.:12.36   1st Qu.:1.603   1st Qu.:2.210   1st Qu.:17.20    
##  Median :13.05   Median :1.865   Median :2.360   Median :19.50    
##  Mean   :13.00   Mean   :2.336   Mean   :2.367   Mean   :19.49    
##  3rd Qu.:13.68   3rd Qu.:3.083   3rd Qu.:2.558   3rd Qu.:21.50    
##  Max.   :14.83   Max.   :5.800   Max.   :3.230   Max.   :30.00    
##    magnesium      total_phenols     flavanoids    nonflavanoid_phenols
##  Min.   : 70.00   Min.   :0.980   Min.   :0.340   Min.   :0.1300      
##  1st Qu.: 88.00   1st Qu.:1.742   1st Qu.:1.205   1st Qu.:0.2700      
##  Median : 98.00   Median :2.355   Median :2.135   Median :0.3400      
##  Mean   : 99.74   Mean   :2.295   Mean   :2.029   Mean   :0.3619      
##  3rd Qu.:107.00   3rd Qu.:2.800   3rd Qu.:2.875   3rd Qu.:0.4375      
##  Max.   :162.00   Max.   :3.880   Max.   :5.080   Max.   :0.6600      
##  proanthocyanins color_intensity       hue         od280.od315_of_diluted_wines
##  Min.   :0.410   Min.   : 1.280   Min.   :0.4800   Min.   :1.270               
##  1st Qu.:1.250   1st Qu.: 3.220   1st Qu.:0.7825   1st Qu.:1.938               
##  Median :1.555   Median : 4.690   Median :0.9650   Median :2.780               
##  Mean   :1.591   Mean   : 5.058   Mean   :0.9574   Mean   :2.612               
##  3rd Qu.:1.950   3rd Qu.: 6.200   3rd Qu.:1.1200   3rd Qu.:3.170               
##  Max.   :3.580   Max.   :13.000   Max.   :1.7100   Max.   :4.000               
##     proline           target      
##  Min.   : 278.0   Min.   :0.0000  
##  1st Qu.: 500.5   1st Qu.:0.0000  
##  Median : 673.5   Median :1.0000  
##  Mean   : 746.9   Mean   :0.9382  
##  3rd Qu.: 985.0   3rd Qu.:2.0000  
##  Max.   :1680.0   Max.   :2.0000

Escalar la base de datos

datos_escalados <- datos
datos_escalados <- subset(datos_escalados, select = -target)
datos_escalados <- scale(datos)

Escalar la base de datos

grupos <- 3 #Inicio con cualquier valor, luego verifica
segmentos <- kmeans(datos_escalados,grupos)

Escalar la base de datos

asignacion <- cbind(datos, cluster = segmentos$cluster)

Escalar la base de datos

fviz_cluster(segmentos, data = datos)

Escalar la base de datos

set.seed(123)
optimizacion <- clusGap(datos_escalados, FUN = kmeans, nstart = 1, K.max=10)
plot(optimizacion, xlab= "Numero de cluster k")

Escalar la base de datos

promedio <- aggregate(asignacion, by=list(asignacion$cluster), FUN=mean)
promedio
##   Group.1  alcohol malic_acid      ash alcalinity_of_ash magnesium
## 1       1 13.15163   3.344490 2.434694          21.43878  99.02041
## 2       2 13.71148   1.997049 2.453770          17.28197 107.78689
## 3       3 12.25412   1.914265 2.239118          20.07941  93.04412
##   total_phenols flavanoids nonflavanoid_phenols proanthocyanins color_intensity
## 1      1.678163  0.7979592            0.4508163        1.163061        7.343265
## 2      2.842131  2.9691803            0.2891803        1.922951        5.444590
## 3      2.248971  2.0733824            0.3629412        1.601324        3.064706
##         hue od280.od315_of_diluted_wines   proline     target cluster
## 1 0.6859184                     1.690204  627.5510 1.97959184       1
## 2 1.0677049                     3.154754 1110.6393 0.03278689       2
## 3 1.0542059                     2.788529  506.5882 1.00000000       3
table(asignacion$cluster)
## 
##  1  2  3 
## 49 61 68

Actividad mapa de México

#install.packages("sf") #Analisis de datos espaciales
library(sf)
## Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
#install.packages("rnaturalearth") #Limites geograficos
library(rnaturalearth)
#install.packages("rnaturalearthdata") #Datos geograficos
library(rnaturalearthdata)
## 
## Attaching package: 'rnaturalearthdata'
## The following object is masked from 'package:rnaturalearth':
## 
##     countries110
#install.packages("devtools") #instalar paquetes de fuentes externas
library(devtools)
## Loading required package: usethis
devtools::install_github("ropensci/rnaturalearthhires")
## Skipping install of 'rnaturalearthhires' from a github remote, the SHA1 (153b0ea5) has not changed since last install.
##   Use `force = TRUE` to force installation
datosmex <- read.csv("~/Documents/Clases/Semestre 6/R clase eeee/mexico2024.csv")
datosmex
##                 Estado Población PIB.per.cápita Esperanza.de.vida
## 1       Aguascalientes       1.4         142703              75.4
## 2      Baja California       3.7         152317              76.2
## 3  Baja California Sur       0.8         151590              76.5
## 4             Campeche       0.9         481697              75.1
## 5              Chiapas       5.5          44387              74.0
## 6            Chihuahua       3.8         141532              75.8
## 7     Distrito Federal       9.2         316761              76.2
## 8             Coahuila       3.2         166389              75.9
## 9               Colima       0.7         128953              75.6
## 10             Durango       1.8         101500              75.2
## 11          Guanajuato       6.2         104393              74.1
## 12            Guerrero       3.5          59922              73.5
## 13             Hidalgo       3.1          78891              74.8
## 14             Jalisco       8.3         133857              75.2
## 15              México      17.4          85184              74.5
## 16           Michoacán       4.8          82199              74.3
## 17             Morelos       2.0          87849              74.9
## 18             Nayarit       1.3          83135              74.7
## 19          Nuevo León       5.8         225862              75.8
## 20              Oaxaca       4.1          57239              73.8
## 21              Puebla       6.6          80424              73.9
## 22           Querétaro       2.3         160301              75.5
## 23        Quintana Roo       1.9         128903              75.6
## 24     San Luis Potosí       2.8         119143              74.8
## 25             Sinaloa       3.0         117150              75.5
## 26              Sonora       3.0         179296              75.5
## 27             Tabasco       2.4         180564              74.6
## 28          Tamaulipas       3.5         129590              75.3
## 29            Tlaxcala       1.3          65899              74.5
## 30            Veracruz       8.1          86373              73.8
## 31             Yucatán       2.3         107364              74.9
## 32           Zacatecas       1.6          87211              74.6
##    Tasa.de.pobreza Tasa.de.alfabetización
## 1             27.2                   98.0
## 2             13.4                   98.5
## 3             13.3                   98.6
## 4             40.9                   96.5
## 5             67.4                   88.7
## 6             26.3                   97.5
## 7             28.4                   99.0
## 8             20.2                   98.2
## 9             18.0                   98.3
## 10            32.7                   96.8
## 11            43.4                   95.0
## 12            60.4                   86.5
## 13            43.5                   94.5
## 14            29.8                   97.8
## 15            42.7                   97.1
## 16            46.0                   94.0
## 17            45.0                   94.8
## 18            35.0                   95.5
## 19            16.0                   98.5
## 20            58.4                   89.0
## 21            59.4                   94.2
## 22            27.6                   98.1
## 23            30.2                   97.0
## 24            35.5                   95.8
## 25            30.0                   96.8
## 26            34.5                   96.8
## 27            50.9                   94.0
## 28            30.9                   96.5
## 29            48.4                   94.5
## 30            58.1                   93.5
## 31            41.1                   95.4
## 32            46.8                   94.0
summary(datosmex)
##     Estado            Población      PIB.per.cápita   Esperanza.de.vida
##  Length:32          Min.   : 0.700   Min.   : 44387   Min.   :73.50    
##  Class :character   1st Qu.: 1.875   1st Qu.: 84672   1st Qu.:74.50    
##  Mode  :character   Median : 3.050   Median :118146   Median :75.00    
##                     Mean   : 3.947   Mean   :133393   Mean   :75.00    
##                     3rd Qu.: 4.975   3rd Qu.:151772   3rd Qu.:75.53    
##                     Max.   :17.400   Max.   :481697   Max.   :76.50    
##  Tasa.de.pobreza Tasa.de.alfabetización
##  Min.   :13.30   Min.   :86.50         
##  1st Qu.:28.20   1st Qu.:94.42         
##  Median :35.25   Median :96.50         
##  Mean   :37.54   Mean   :95.61         
##  3rd Qu.:46.20   3rd Qu.:97.85         
##  Max.   :67.40   Max.   :99.00
datosmex_escalados <- datosmex
datosmex_escalados <- subset(datosmex_escalados, select = -Estado)
datosmex_escalados <- scale(datosmex_escalados)
grupos <- 4
segmentos <- kmeans(datosmex_escalados,grupos)
asignacion <- data.frame(Estado = datosmex$Estado, cluster = segmentos$cluster)
fviz_cluster(segmentos, data = datosmex_escalados)

set.seed(123)
optimizacion <- clusGap(datosmex_escalados, FUN = kmeans, nstart = 1, K.max=10)
plot(optimizacion, xlab= "Numero de cluster k")

promedio <- aggregate(asignacion, by=list(asignacion$cluster), FUN=mean)
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
promedio
##   Group.1 Estado cluster
## 1       1     NA       1
## 2       2     NA       2
## 3       3     NA       3
## 4       4     NA       4
table(asignacion$cluster)
## 
##  1  2  3  4 
##  2 10  6 14
mexico <- rnaturalearth::ne_states(country = "Mexico", returnclass = "sf")

mexico <- mexico %>%
  rename(Estado = name)

mexico_clusters <- left_join(mexico, asignacion, by = "Estado")
ggplot(mexico_clusters) +
  geom_sf(aes(fill = factor(cluster)), color = "black") +  
  scale_fill_manual(values = c("green", "yellow", "red", "purple")) +  
  labs(title = "Clusters de Población por Estado en México") + 
  theme_minimal()

LS0tCnRpdGxlOiAidmlub3NfUmNvbmNlbnRyYWNpb24iCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogY29zbW8KZGF0ZTogIjIwMjUtMDItMTkiCi0tLQoKIVtdKC8vVXNlcnMvZW1pbGlhbm8vRG93bmxvYWRzL1Zpbm8ucG5nKQojIDxzcGFuIHN0eWxlPSJjb2xvcjogbWFnZW50YTsiPkNvbnRleHRvPC9zcGFuPgpFc3RvcyBkYXRvcyBzb24gZWwgcmVzdWx0YWRvIGRlIHVuIGFuYWxpc2lzIHF1aW1pY28gZGUgdmlub3MgY3VsdGl2YWRvcyBlbiBsYSBtaXNtYSByZWdpb24gZGUgSXRhbGlhICAKUGVybyBkZXJpdmFkb3MgZGUgdHJlcyBjdWx0aXZhcmVzIGRpc3RpbnRvcwoKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBtYWdlbnRhOyI+TGlicmVyaWFzPC9zcGFuPgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojaW5zdGFsbC5wYWNrYWdlcygiQ2x1c3RlciIpICMgcGFyYSBhZ3J1cGFtaWVudG8KbGlicmFyeShjbHVzdGVyKQojaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpCmxpYnJhcnkoZ2dwbG90MikKI2luc3RhbGwucGFja2FnZXMoImZhY3RvZXh0cmEiKSAjIHZpc3VhbGl6YXIgY2x1c3RlcgpsaWJyYXJ5KGZhY3RvZXh0cmEpCiNpbnN0YWxsLnBhY2thZ2VzKCJkYXRhLnRhYmxlIikgIyBDb25qdW50byBkZSBkYXRvcyBncmFuZGUKbGlicmFyeShkYXRhLnRhYmxlKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IG1hZ2VudGE7Ij5JbXBvcnRhIGxhIGJhc2UgZGUgZGF0b3M8L3NwYW4+CmBgYHtyfQpkYXRvcyA8LSByZWFkLmNzdigifi9Eb2N1bWVudHMvQ2xhc2VzL1NlbWVzdHJlIDYvUiBjbGFzZSBlZWVlL3dpbmVfZGF0YXNldC5jc3YiKQpkYXRvcwpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogbWFnZW50YTsiPkVudGVuZGVyIGxhIGJhc2UgZGUgZGF0b3Mvc3Bhbj4KYGBge3J9CnN1bW1hcnkoZGF0b3MpCmBgYAoKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogbWFnZW50YTsiPkVzY2FsYXIgbGEgYmFzZSBkZSBkYXRvczwvc3Bhbj4KYGBge3J9CmRhdG9zX2VzY2FsYWRvcyA8LSBkYXRvcwpkYXRvc19lc2NhbGFkb3MgPC0gc3Vic2V0KGRhdG9zX2VzY2FsYWRvcywgc2VsZWN0ID0gLXRhcmdldCkKZGF0b3NfZXNjYWxhZG9zIDwtIHNjYWxlKGRhdG9zKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogbWFnZW50YTsiPkVzY2FsYXIgbGEgYmFzZSBkZSBkYXRvczwvc3Bhbj4KYGBge3J9CmdydXBvcyA8LSAzICNJbmljaW8gY29uIGN1YWxxdWllciB2YWxvciwgbHVlZ28gdmVyaWZpY2EKc2VnbWVudG9zIDwtIGttZWFucyhkYXRvc19lc2NhbGFkb3MsZ3J1cG9zKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogbWFnZW50YTsiPkVzY2FsYXIgbGEgYmFzZSBkZSBkYXRvczwvc3Bhbj4KYGBge3J9CmFzaWduYWNpb24gPC0gY2JpbmQoZGF0b3MsIGNsdXN0ZXIgPSBzZWdtZW50b3MkY2x1c3RlcikKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IG1hZ2VudGE7Ij5Fc2NhbGFyIGxhIGJhc2UgZGUgZGF0b3M8L3NwYW4+CmBgYHtyfQpmdml6X2NsdXN0ZXIoc2VnbWVudG9zLCBkYXRhID0gZGF0b3MpCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBtYWdlbnRhOyI+RXNjYWxhciBsYSBiYXNlIGRlIGRhdG9zPC9zcGFuPgpgYGB7cn0Kc2V0LnNlZWQoMTIzKQpvcHRpbWl6YWNpb24gPC0gY2x1c0dhcChkYXRvc19lc2NhbGFkb3MsIEZVTiA9IGttZWFucywgbnN0YXJ0ID0gMSwgSy5tYXg9MTApCnBsb3Qob3B0aW1pemFjaW9uLCB4bGFiPSAiTnVtZXJvIGRlIGNsdXN0ZXIgayIpCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBtYWdlbnRhOyI+RXNjYWxhciBsYSBiYXNlIGRlIGRhdG9zPC9zcGFuPgpgYGB7cn0KcHJvbWVkaW8gPC0gYWdncmVnYXRlKGFzaWduYWNpb24sIGJ5PWxpc3QoYXNpZ25hY2lvbiRjbHVzdGVyKSwgRlVOPW1lYW4pCnByb21lZGlvCnRhYmxlKGFzaWduYWNpb24kY2x1c3RlcikKYGBgCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogbWFnZW50YTsiPkFjdGl2aWRhZCBtYXBhIGRlIE3DqXhpY288L3NwYW4+CmBgYHtyfQojaW5zdGFsbC5wYWNrYWdlcygic2YiKSAjQW5hbGlzaXMgZGUgZGF0b3MgZXNwYWNpYWxlcwpsaWJyYXJ5KHNmKQojaW5zdGFsbC5wYWNrYWdlcygicm5hdHVyYWxlYXJ0aCIpICNMaW1pdGVzIGdlb2dyYWZpY29zCmxpYnJhcnkocm5hdHVyYWxlYXJ0aCkKI2luc3RhbGwucGFja2FnZXMoInJuYXR1cmFsZWFydGhkYXRhIikgI0RhdG9zIGdlb2dyYWZpY29zCmxpYnJhcnkocm5hdHVyYWxlYXJ0aGRhdGEpCiNpbnN0YWxsLnBhY2thZ2VzKCJkZXZ0b29scyIpICNpbnN0YWxhciBwYXF1ZXRlcyBkZSBmdWVudGVzIGV4dGVybmFzCmxpYnJhcnkoZGV2dG9vbHMpCmRldnRvb2xzOjppbnN0YWxsX2dpdGh1Yigicm9wZW5zY2kvcm5hdHVyYWxlYXJ0aGhpcmVzIikKYGBgCgoKYGBge3J9CmRhdG9zbWV4IDwtIHJlYWQuY3N2KCJ+L0RvY3VtZW50cy9DbGFzZXMvU2VtZXN0cmUgNi9SIGNsYXNlIGVlZWUvbWV4aWNvMjAyNC5jc3YiKQpkYXRvc21leApgYGAKCmBgYHtyfQpzdW1tYXJ5KGRhdG9zbWV4KQpgYGAKCmBgYHtyfQpkYXRvc21leF9lc2NhbGFkb3MgPC0gZGF0b3NtZXgKZGF0b3NtZXhfZXNjYWxhZG9zIDwtIHN1YnNldChkYXRvc21leF9lc2NhbGFkb3MsIHNlbGVjdCA9IC1Fc3RhZG8pCmRhdG9zbWV4X2VzY2FsYWRvcyA8LSBzY2FsZShkYXRvc21leF9lc2NhbGFkb3MpCmBgYAoKYGBge3J9CmdydXBvcyA8LSA0CnNlZ21lbnRvcyA8LSBrbWVhbnMoZGF0b3NtZXhfZXNjYWxhZG9zLGdydXBvcykKYGBgCgpgYGB7cn0KYXNpZ25hY2lvbiA8LSBkYXRhLmZyYW1lKEVzdGFkbyA9IGRhdG9zbWV4JEVzdGFkbywgY2x1c3RlciA9IHNlZ21lbnRvcyRjbHVzdGVyKQpgYGAKCmBgYHtyfQpmdml6X2NsdXN0ZXIoc2VnbWVudG9zLCBkYXRhID0gZGF0b3NtZXhfZXNjYWxhZG9zKQpgYGAKCmBgYHtyfQpzZXQuc2VlZCgxMjMpCm9wdGltaXphY2lvbiA8LSBjbHVzR2FwKGRhdG9zbWV4X2VzY2FsYWRvcywgRlVOID0ga21lYW5zLCBuc3RhcnQgPSAxLCBLLm1heD0xMCkKcGxvdChvcHRpbWl6YWNpb24sIHhsYWI9ICJOdW1lcm8gZGUgY2x1c3RlciBrIikKYGBgCgoKYGBge3J9CnByb21lZGlvIDwtIGFnZ3JlZ2F0ZShhc2lnbmFjaW9uLCBieT1saXN0KGFzaWduYWNpb24kY2x1c3RlciksIEZVTj1tZWFuKQpwcm9tZWRpbwp0YWJsZShhc2lnbmFjaW9uJGNsdXN0ZXIpCmBgYAoKYGBge3J9Cm1leGljbyA8LSBybmF0dXJhbGVhcnRoOjpuZV9zdGF0ZXMoY291bnRyeSA9ICJNZXhpY28iLCByZXR1cm5jbGFzcyA9ICJzZiIpCgptZXhpY28gPC0gbWV4aWNvICU+JQogIHJlbmFtZShFc3RhZG8gPSBuYW1lKQoKbWV4aWNvX2NsdXN0ZXJzIDwtIGxlZnRfam9pbihtZXhpY28sIGFzaWduYWNpb24sIGJ5ID0gIkVzdGFkbyIpCmBgYAoKCmBgYHtyfQpnZ3Bsb3QobWV4aWNvX2NsdXN0ZXJzKSArCiAgZ2VvbV9zZihhZXMoZmlsbCA9IGZhY3RvcihjbHVzdGVyKSksIGNvbG9yID0gImJsYWNrIikgKyAgCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiZ3JlZW4iLCAieWVsbG93IiwgInJlZCIsICJwdXJwbGUiKSkgKyAgCiAgbGFicyh0aXRsZSA9ICJDbHVzdGVycyBkZSBQb2JsYWNpw7NuIHBvciBFc3RhZG8gZW4gTcOpeGljbyIpICsgCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKCgo=