install.packages(“rometes”) remotes::install_github(“osoramirez/resumeRdesc”)

  1. Cargar librerias
library(readr)       # Por si acaso cargamos datos ...
library(ggplot2)     # Para visualizar
library(resumeRdesc) # Para estadísticos descriptivos
  1. Cargar o Contruir datos
set.seed(2020)
n <- 100   # Total de observaciones
edades <- sample(15:90, n, replace = TRUE)
pesos <- sample(40:90, n, replace = TRUE)
estaturas <- sample(110:200, n, replace = TRUE) /100

personas <- data.frame(edades, pesos, estaturas)
names(personas) <- c("edad", "peso", "estatura")

personas
##     edad peso estatura
## 1     42   49     1.34
## 2     36   90     1.45
## 3     79   86     1.32
## 4     31   50     1.83
## 5     50   90     1.60
## 6     56   56     1.73
## 7     84   78     1.22
## 8     63   52     1.36
## 9     70   49     1.36
## 10    86   77     2.00
## 11    56   60     1.29
## 12    43   49     1.32
## 13    17   50     1.80
## 14    80   86     1.37
## 15    18   42     1.78
## 16    90   64     1.61
## 17    62   83     2.00
## 18    61   70     1.48
## 19    21   62     1.62
## 20    32   90     1.95
## 21    66   84     1.94
## 22    62   87     1.98
## 23    58   43     1.54
## 24    24   60     1.57
## 25    84   80     1.99
## 26    57   76     1.25
## 27    46   42     1.92
## 28    27   65     1.35
## 29    80   40     1.51
## 30    15   68     1.82
## 31    52   53     1.37
## 32    17   63     1.59
## 33    43   66     1.74
## 34    39   78     1.51
## 35    59   57     1.43
## 36    57   75     1.54
## 37    83   58     1.15
## 38    72   64     1.97
## 39    80   77     1.60
## 40    39   43     1.12
## 41    49   49     1.56
## 42    38   65     1.35
## 43    64   90     1.63
## 44    47   63     1.65
## 45    21   60     1.47
## 46    22   74     1.43
## 47    70   83     1.13
## 48    27   64     1.82
## 49    83   82     1.83
## 50    82   61     1.52
## 51    33   72     1.51
## 52    37   54     1.85
## 53    82   70     1.50
## 54    56   51     1.39
## 55    15   70     1.41
## 56    61   40     1.65
## 57    45   90     1.40
## 58    74   89     1.47
## 59    30   66     1.36
## 60    84   43     1.56
## 61    69   42     1.20
## 62    40   59     1.11
## 63    24   63     1.84
## 64    42   59     1.10
## 65    79   83     1.87
## 66    31   68     1.16
## 67    54   40     1.28
## 68    29   78     1.79
## 69    58   83     1.62
## 70    64   83     1.90
## 71    19   61     1.54
## 72    62   51     1.83
## 73    34   51     1.21
## 74    66   49     1.63
## 75    28   52     1.20
## 76    27   66     1.68
## 77    42   84     1.98
## 78    55   81     1.37
## 79    74   80     1.39
## 80    54   83     1.39
## 81    41   68     1.21
## 82    73   64     1.91
## 83    49   58     1.80
## 84    16   41     1.80
## 85    22   88     1.67
## 86    75   83     1.79
## 87    46   43     1.79
## 88    82   50     1.99
## 89    53   58     1.69
## 90    60   90     1.48
## 91    69   90     1.83
## 92    67   68     1.67
## 93    50   90     1.93
## 94    62   80     1.12
## 95    55   41     1.55
## 96    43   59     1.11
## 97    16   46     1.88
## 98    46   47     1.23
## 99    31   53     1.80
## 100   51   83     1.39
  1. La media
media.edad <- sum(personas$edad) / n
media.edad
## [1] 51.15
media.edad <- mean(personas$edad)
media.edad
## [1] 51.15
  1. La mediana
mediana.edad <- median(personas$edad)
mediana.edad
## [1] 52.5
orden.personas.edad <- sort(personas$edad)
posicion <- ceiling(n /2)

orden.personas.edad
##   [1] 15 15 16 16 17 17 18 19 21 21 22 22 24 24 27 27 27 28 29 30 31 31 31 32 33
##  [26] 34 36 37 38 39 39 40 41 42 42 42 43 43 43 45 46 46 46 47 49 49 50 50 51 52
##  [51] 53 54 54 55 55 56 56 56 57 57 58 58 59 60 61 61 62 62 62 62 63 64 64 66 66
##  [76] 67 69 69 70 70 72 73 74 74 75 79 79 80 80 80 82 82 82 83 83 84 84 84 86 90
cat("Valor de la posición ",posicion, " del conjunto de datos (Vector) edades es: ", orden.personas.edad[posicion]) 
## Valor de la posición  50  del conjunto de datos (Vector) edades es:  52
mediana.edad <- sum(orden.personas.edad[posicion], orden.personas.edad[posicion + 1]) / 2
mediana.edad
## [1] 52.5
  1. La moda
frecuencia <- table(personas$edad)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
## 
## 62 27 31 42 43 46 56 80 82 84 15 16 17 21 22 24 39 49 50 54 55 57 58 61 64 66 
##  4  3  3  3  3  3  3  3  3  3  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2 
## 69 70 74 79 83 18 19 28 29 30 32 33 34 36 37 38 40 41 45 47 51 52 53 59 60 63 
##  2  2  2  2  2  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
## 67 72 73 75 86 90 
##  1  1  1  1  1  1
moda <- frecuencia[1]
moda
## 62 
##  4
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es:  62  con  4
print("¿Es una sola moda, bimodal o multimodal ?")
## [1] "¿Es una sola moda, bimodal o multimodal ?"
library(resumeRdesc)

moda <- Mode(personas$edad)
moda
## [1] 62
  1. Visualizar datos
ggplot(data = personas, aes(x = edad)) +
  geom_bar()

*Histograma de edad

ggplot(data = personas, aes(x = edad)) +
  geom_histogram(bins = 30)

*Histograma de edad con medidas de localizacion

ggplot(personas, aes(x=edad)) + 
  geom_histogram(aes(fill=..count..), bins=20, color="white") +
  geom_vline(aes(xintercept=mean(edad)), color="red") +
  geom_vline(aes(xintercept=median(edad)), color= "darkgreen")

*Grafico mas complejo

ggplot(aes(x = edad), data = personas) +
 geom_histogram(color = 'green',
                fill = 'green',
                alpha = 0.2) +
 labs(title = "Histograma de Edad") +
  geom_vline(aes(xintercept = median(edad),
                  color = "mediana"),
              linetype = "dashed",
              size = 1) +
   geom_vline(aes(xintercept = mean(edad),
                  color = "media"),
              linetype = "dashed",
              size = 1) +
  geom_vline(
     aes(xintercept = moda[1],
         color = "moda"),
     linetype = "dashed",
     size = 1
   )
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.