Este script determina medidas de tendencia central, media, mediana y moda de algunas variables cuantitativas de alumnos. Se utiliza el conjunto de datos que son importados desde el servicio github.

El conjunto de alumnos se encuentra en la dirección: https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/practicas%20R/datos/alumnos%20simulados.csv

Importar los datos

alumnos <- read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/practicas%20R/datos/alumnos%20simulados.csv")
head(alumnos)
##   X matricula     carrera genero promedio edad  peso altura
## 1 1         1       CIVIL      M    83.83   20 74.29 174.29
## 2 2         2   ELECTRICA      M    86.64   21 77.86 177.86
## 3 3         3 INFORMATICA      F    83.11   20 58.94 158.94
## 4 4         4         TIC      F    91.53   23 62.30 162.30
## 5 5         5  BIOQUIMICA      M    87.14   21 78.11 178.11
## 6 6         6         TIC      F    83.16   20 62.59 162.59
tail(alumnos)
##         X matricula        carrera genero promedio edad  peso altura
## 4995 4995      4995    INFORMATICA      F    81.15   20 58.57 158.57
## 4996 4996      4996    ELECTRONICA      M    86.56   21 79.00 179.00
## 4997 4997      4997 ADMINISTRACION      M    89.40   22 82.37 182.37
## 4998 4998      4998    ELECTRONICA      M    83.60   20 81.20 181.20
## 4999 4999      4999 ADMINISTRACION      M    85.99   21 81.25 181.25
## 5000 5000      5000          CIVIL      M    86.59   21 83.42 183.42

Factorizando genero y carreras de alumnos

alumnos$genero <- factor(alumnos$genero)
alumnos$carrera <- factor(alumnos$carrera)

Estructura de alumnos

str(alumnos)
## 'data.frame':    5000 obs. of  8 variables:
##  $ X        : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ matricula: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ carrera  : Factor w/ 13 levels "ADMINISTRACION",..: 4 5 8 13 3 13 11 9 9 2 ...
##  $ genero   : Factor w/ 2 levels "F","M": 2 2 1 1 2 1 1 1 1 2 ...
##  $ promedio : num  83.8 86.6 83.1 91.5 87.1 ...
##  $ edad     : int  20 21 20 23 21 20 21 22 22 21 ...
##  $ peso     : num  74.3 77.9 58.9 62.3 78.1 ...
##  $ altura   : num  174 178 159 162 178 ...

Estadísticos de genero con summary()

summary(alumnos$genero)
##    F    M 
## 2436 2564

Estadísticos de carrera con summary()

summary(alumnos$carrera)
## ADMINISTRACION   ARQUITECTURA     BIOQUIMICA          CIVIL      ELECTRICA 
##            390            421            374            378            407 
##    ELECTRONICA     INDUSTRIAL    INFORMATICA       MECANICA    MECATRONICA 
##            403            379            354            336            345 
##        QUIMICA       SISTEMAS            TIC 
##            415            397            401

Estadísticos de edades con summary()

summary(alumnos$edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##      17      20      21      21      22      25

Estadísticos de promedios con summary()

summary(alumnos$promedio)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   73.28   83.68   85.95   85.99   88.42   99.20

Estadísticos de pesos con summary()

summary(alumnos$peso)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   52.77   60.05   73.69   70.24   80.10   91.46

Estadísticos de alturas con summary()

summary(alumnos$altura)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   152.8   160.1   173.7   170.2   180.1   191.5

Media, Mediana y Moda de promedios de todos

media <- mean(alumnos$promedio)
paste("La media de la variable edad es", media)
## [1] "La media de la variable edad es 85.98896"
mediana <- median(alumnos$promedio)
paste("La mediana de la variable edad es", mediana)
## [1] "La mediana de la variable edad es 85.95"
frecuencias <- data.frame(table(alumnos$promedio))
moda <- frecuencias[which.max(frecuencias$Freq),1]

paste("La moda de la variable edad es", moda)
## [1] "La moda de la variable edad es 83.73"

Promedio de alumnos de dos carreras

# install.packages("dplyr") # Instalarlo antes si se necesita no haberlo hecho
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
sistemas <- filter(alumnos, carrera == "SISTEMAS")
informatica <- filter(alumnos, carrera == "INFORMATICA")
arquitectura <- filter(alumnos, carrera == "ARQUITECTURA")

mean(sistemas$promedio)
## [1] 85.98738
mean(informatica$promedio)
## [1] 85.9652
mean(arquitectura$promedio)
## [1] 85.9043
if (mean(sistemas$promedio) > mean(informatica$promedio)) {
  print("Los alumnos de sistemas tienen mejor promedio académico")
}
## [1] "Los alumnos de sistemas tienen mejor promedio académico"
if (mean(sistemas$promedio) < mean(informatica$promedio)) {
  print("Los alumnos de informatica tienen mejor promedio académico")
}
if (mean(sistemas$promedio) == mean(informatica$promedio)) {
  print("Los alumnos de informatica tienen promedio académico similar a los alumnos de sistemas")
}