Clases de los promedios de los alumnos del ITD

Objetivo: Determinar clases conforme reglas Sturges, Scott y FD (Freedman-Diaconis). Histograma y pastel

Proceso:

  • Importar datos de promedios de alumnos
  • Graficar histograma de alumnos con promedio mayor que cero. Sturges, Scott, FD de las CARRERAS:
  • ARQUITECTURA
  • BIOQUIMICA
  • CIVIL
  • ELECTRICA
  • ELECTRONICA
  • INDUSTRIAL
  • MECANICA
  • MECATRONICA
  • QUIMICA
  • SISTEMAS
  • TIC
  • GESTION
  • INFORMATICA
  • ADMINISTRACION
  • Otras carreras. Pendiente
  • Determinar clases conforme a Sturges DE CADA CARRERA
  • Graficar pastel
  • Determinar clases conforme a Scott DE CADA CARRERA
  • Graficar pastel
  • Determinar clases conforme a FD DE CADA CARRERA
  • Graficar pastel
  • Interpretar salidas de datos

Los datos

datos <- read.csv("C:/Users/SATELLITE/Documents/SEMESTRE ene-jun 2018/Z PROBABILIDAD Y ESTADISTICAS/DATOS/ALUMNOS DE ISC INSCRITOS/alumnos inscritos ene-jun 2018.csv", header = TRUE, sep = ",")

# datos # Los datos le ponemos comentario # para que no aparezcan son muchos

head(datos) # solo los primeros
##   no semetre promedio      carrera
## 1  1       7    82.27 ARQUITECTURA
## 2  2      11    82.59 ARQUITECTURA
## 3  3       8    87.47 ARQUITECTURA
## 4  4      12    83.18 ARQUITECTURA
## 5  5      11    83.72 ARQUITECTURA
## 6  6       4    90.11 ARQUITECTURA
carreras <- unique(datos$carrera) # Cuales carreras
carreras
##  [1] ARQUITECTURA   BIOQUIMICA     CIVIL          ELECTRICA     
##  [5] ELECTRONICA    INDUSTRIAL     MECANICA       MECATRONICA   
##  [9] QUIMICA        SISTEMAS       GESTION        TIC           
## [13] INFORMATICA    ADMINISTRACION
## 14 Levels: ADMINISTRACION ARQUITECTURA BIOQUIMICA CIVIL ... TIC

—————————————————————————————————————————

ARQUITECTURA

Histogramas de ARQUITECTURA. Sturges, Scott y FD

arquitectura <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'ARQUITECTURA')]

arquitectura
##  [1] 85.60 88.33 89.83 89.67 90.83 87.50 95.00 84.83 80.00 82.80 90.33
## [12] 83.20 85.83 87.20 85.50 90.17 86.83 83.67 87.40 92.83 86.33 82.60
## [23] 84.67 83.67 86.00 88.75 90.00 91.50 84.75 85.60 89.75 78.00 82.00
## [34] 79.83 81.40 84.33 88.00 90.33 86.33 84.17 90.50 86.17 81.40 81.80
## [45] 86.67 87.33 88.17 77.33 89.50 84.50 81.00 84.83 79.33 87.00 81.33
## [56] 84.33 88.17 85.60 78.75 88.33 84.00 79.20 88.00 88.67 84.71 83.50
## [67] 84.50 83.67 83.17 79.20 83.80 85.67
n <- length(arquitectura)

n
## [1] 72
hist(arquitectura, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos ARQUITECTURA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(arquitectura, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos ARQUITECTURA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(arquitectura, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos ARQUITECTURA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de ARQUITECTURA. Sturges

clases <- nclass.Sturges(arquitectura) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(arquitectura, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.3,79.5]    6
## 2 (79.5,81.7]    6
## 3   (81.7,84]   11
## 4   (84,86.2]   18
## 5 (86.2,88.4]   16
## 6 (88.4,90.6]   11
## 7 (90.6,92.8]    2
## 8   (92.8,95]    2
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.3,79.5]    6 0.08333333  8.333333
## 2 (79.5,81.7]    6 0.08333333  8.333333
## 3   (81.7,84]   11 0.15277778 15.277778
## 4   (84,86.2]   18 0.25000000 25.000000
## 5 (86.2,88.4]   16 0.22222222 22.222222
## 6 (88.4,90.6]   11 0.15277778 15.277778
## 7 (90.6,92.8]    2 0.02777778  2.777778
## 8   (92.8,95]    2 0.02777778  2.777778
# *********************************************************************************
#Inicializamos carreras.clases <- NULL
carreras.clases <- NULL # Solo una vez inicializar en estre script


# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "ARQUITECTURA"))

Gr?ficas de pastel. Arquitectura Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de ARQUITECTURA. Scott

clases <- nclass.scott(arquitectura) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(arquitectura, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.3,80.3]    8
## 2 (80.3,83.2]   10
## 3 (83.2,86.2]   23
## 4 (86.2,89.1]   18
## 5 (89.1,92.1]   11
## 6   (92.1,95]    2
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.3,80.3]    8 0.11111111 11.111111
## 2 (80.3,83.2]   10 0.13888889 13.888889
## 3 (83.2,86.2]   23 0.31944444 31.944444
## 4 (86.2,89.1]   18 0.25000000 25.000000
## 5 (89.1,92.1]   11 0.15277778 15.277778
## 6   (92.1,95]    2 0.02777778  2.777778

Gr?ficas de pastel. Arquitectura Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de ARQUITECTURA. FD

clases <- nclass.FD(arquitectura) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(arquitectura, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.3,79.5]    6
## 2 (79.5,81.7]    6
## 3   (81.7,84]   11
## 4   (84,86.2]   18
## 5 (86.2,88.4]   16
## 6 (88.4,90.6]   11
## 7 (90.6,92.8]    2
## 8   (92.8,95]    2
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.3,79.5]    6 0.08333333  8.333333
## 2 (79.5,81.7]    6 0.08333333  8.333333
## 3   (81.7,84]   11 0.15277778 15.277778
## 4   (84,86.2]   18 0.25000000 25.000000
## 5 (86.2,88.4]   16 0.22222222 22.222222
## 6 (88.4,90.6]   11 0.15277778 15.277778
## 7 (90.6,92.8]    2 0.02777778  2.777778
## 8   (92.8,95]    2 0.02777778  2.777778

Gr?ficas de pastel. Arquitectura FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

BIOQUIMICA

Histogramas de BIOQUIMICA Sturges, Scott y FD

bioquimica <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'BIOQUIMICA')]

bioquimica
##  [1] 81.17 89.50 83.60 88.17 87.75 85.83 91.67 87.50 84.20 83.80 90.25
## [12] 83.67 77.57 88.40 77.50 88.00 94.67 87.00 83.17 79.67 90.00 92.17
## [23] 93.17 84.67 84.00 85.40 88.20 89.00 88.33 86.80 94.00 93.17 91.20
## [34] 85.40 93.33 88.33 89.17 83.80 81.00 82.33 81.40 79.50 80.00 84.83
## [45] 83.40 79.40 82.50 90.83 88.17 88.00 84.40 81.20 83.00 81.80 82.20
## [56] 87.83 86.33 85.33 83.50 89.00 81.67 90.50 85.33 89.50 95.17
n <- length(bioquimica)

n
## [1] 65
hist(bioquimica, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos BIOQUIMICA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(bioquimica, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos BIOQUIMICA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(bioquimica, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos BIOQUIMICA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de BIOQUIMICA Sturges

clases <- nclass.Sturges(bioquimica) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(bioquimica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.5,79.7]    5
## 2 (79.7,81.9]    7
## 3 (81.9,84.1]   12
## 4 (84.1,86.3]   10
## 5 (86.3,88.5]   13
## 6 (88.5,90.8]    8
## 7   (90.8,93]    4
## 8   (93,95.2]    6
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.5,79.7]    5 0.07692308  7.692308
## 2 (79.7,81.9]    7 0.10769231 10.769231
## 3 (81.9,84.1]   12 0.18461538 18.461538
## 4 (84.1,86.3]   10 0.15384615 15.384615
## 5 (86.3,88.5]   13 0.20000000 20.000000
## 6 (88.5,90.8]    8 0.12307692 12.307692
## 7   (90.8,93]    4 0.06153846  6.153846
## 8   (93,95.2]    6 0.09230769  9.230769
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "BIOQUIMICA"))

Gr?ficas de pastel. BIOQUIMICA Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de BIOQUIMICA Scott

clases <- nclass.scott(bioquimica) 
clases
## [1] 5
tabla.intervalos <- transform(table(cut(bioquimica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (77.5,81]    7
## 2   (81,84.6]   19
## 3 (84.6,88.1]   15
## 4 (88.1,91.6]   16
## 5 (91.6,95.2]    8
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq  Freq.Rel Freq.Porc
## 1   (77.5,81]    7 0.1076923  10.76923
## 2   (81,84.6]   19 0.2923077  29.23077
## 3 (84.6,88.1]   15 0.2307692  23.07692
## 4 (88.1,91.6]   16 0.2461538  24.61538
## 5 (91.6,95.2]    8 0.1230769  12.30769

Gr?ficas de pastel. BIOQUIMICA Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de BIOQUIMICA FD

clases <- nclass.FD(bioquimica) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(arquitectura, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.3,79.9]    7
## 2 (79.9,82.4]    7
## 3 (82.4,84.9]   20
## 4 (84.9,87.4]   16
## 5   (87.4,90]   13
## 6   (90,92.5]    7
## 7   (92.5,95]    2
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.3,79.9]    7 0.10769231 10.769231
## 2 (79.9,82.4]    7 0.10769231 10.769231
## 3 (82.4,84.9]   20 0.30769231 30.769231
## 4 (84.9,87.4]   16 0.24615385 24.615385
## 5   (87.4,90]   13 0.20000000 20.000000
## 6   (90,92.5]    7 0.10769231 10.769231
## 7   (92.5,95]    2 0.03076923  3.076923

Gr?ficas de pastel. BIOQUIMICA FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

CIVIL

Histogramas de CIVIL Sturges, Scott y FD

civil <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'CIVIL')]

civil
##  [1] 90.00 88.33 83.67 85.00 92.50 86.50 87.00 90.00 82.00 81.00 86.20
## [12] 88.60 81.67 86.67 88.00 79.00 85.33 91.50 94.67 85.00 81.60 83.00
## [23] 88.20 87.25 85.67 81.50 79.00 85.60 84.83 89.17 90.25 93.00 82.20
## [34] 88.33 89.17 84.83 89.83 87.17 82.50 85.17 82.75 90.50 78.20 86.33
## [45] 86.00 91.33 85.33 86.33 87.67 92.83 86.40 87.67 77.33 91.17 85.80
## [56] 87.67 87.83 89.83 87.00 82.00 87.40 85.20 89.20 81.50 81.50 81.00
## [67] 88.50
n <- length(civil)

n
## [1] 67
hist(civil, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos CIVIL del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(civil, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos CIVIL del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(civil, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos CIVIL del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de CIVIL Sturges

clases <- nclass.Sturges(civil) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(civil, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.3,79.5]    4
## 2 (79.5,81.7]    6
## 3 (81.7,83.8]    8
## 4   (83.8,86]   12
## 5   (86,88.2]   16
## 6 (88.2,90.3]   13
## 7 (90.3,92.5]    5
## 8 (92.5,94.7]    3
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.3,79.5]    4 0.05970149  5.970149
## 2 (79.5,81.7]    6 0.08955224  8.955224
## 3 (81.7,83.8]    8 0.11940299 11.940299
## 4   (83.8,86]   12 0.17910448 17.910448
## 5   (86,88.2]   16 0.23880597 23.880597
## 6 (88.2,90.3]   13 0.19402985 19.402985
## 7 (90.3,92.5]    5 0.07462687  7.462687
## 8 (92.5,94.7]    3 0.04477612  4.477612
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "CIVIL"))

Gr?ficas de pastel. CIVIL Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de CIVIL Scott

clases <- nclass.scott(civil) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(civil, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.3,80.2]    4
## 2 (80.2,83.1]   13
## 3   (83.1,86]   13
## 4   (86,88.9]   21
## 5 (88.9,91.8]   12
## 6 (91.8,94.7]    4
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.3,80.2]    4 0.05970149  5.970149
## 2 (80.2,83.1]   13 0.19402985 19.402985
## 3   (83.1,86]   13 0.19402985 19.402985
## 4   (86,88.9]   21 0.31343284 31.343284
## 5 (88.9,91.8]   12 0.17910448 17.910448
## 6 (91.8,94.7]    4 0.05970149  5.970149

Gr?ficas de pastel. CIVIL Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de CIVIL FD

clases <- nclass.FD(civil) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(civil, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (77.3,79.8]    4
## 2 (79.8,82.3]   10
## 3 (82.3,84.8]    4
## 4 (84.8,87.2]   21
## 5 (87.2,89.7]   15
## 6 (89.7,92.2]    9
## 7 (92.2,94.7]    4
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (77.3,79.8]    4 0.05970149  5.970149
## 2 (79.8,82.3]   10 0.14925373 14.925373
## 3 (82.3,84.8]    4 0.05970149  5.970149
## 4 (84.8,87.2]   21 0.31343284 31.343284
## 5 (87.2,89.7]   15 0.22388060 22.388060
## 6 (89.7,92.2]    9 0.13432836 13.432836
## 7 (92.2,94.7]    4 0.05970149  5.970149

Gr?ficas de pastel. CIVIL FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

ELECTRICA

Histogramas de ELECTRICA Sturges, Scott y FD

electrica <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'ELECTRICA')]

electrica
##  [1] 86.50 91.00 88.75 88.33 90.83 88.83 87.00 83.50 89.00 86.00 85.67
## [12] 83.17 87.25 89.75 83.00 85.60 88.00 84.67 87.25 92.83 87.50 84.67
## [23] 88.33 86.67 87.80 82.33 89.00 94.17 87.00 85.83 83.00 86.67 78.67
## [34] 85.83 90.17 87.50 85.50
n <- length(electrica)

n
## [1] 37
hist(electrica, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos ELECTRICA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(electrica, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos ELECTRICA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(electrica, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos ELECTRICA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de ELECTRICA Sturges

clases <- nclass.Sturges(electrica) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(electrica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (78.7,80.9]    1
## 2 (80.9,83.1]    3
## 3 (83.1,85.3]    4
## 4 (85.3,87.5]   15
## 5 (87.5,89.7]    8
## 6   (89.7,92]    4
## 7   (92,94.2]    2
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (78.7,80.9]    1 0.02702703  2.702703
## 2 (80.9,83.1]    3 0.08108108  8.108108
## 3 (83.1,85.3]    4 0.10810811 10.810811
## 4 (85.3,87.5]   15 0.40540541 40.540541
## 5 (87.5,89.7]    8 0.21621622 21.621622
## 6   (89.7,92]    4 0.10810811 10.810811
## 7   (92,94.2]    2 0.05405405  5.405405
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "ELECTRICA"))

Gr?ficas de pastel. ELECTRICA Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de ELECTRICA Scott

clases <- nclass.scott(electrica) 
clases
## [1] 5
tabla.intervalos <- transform(table(cut(electrica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (78.7,81.8]    1
## 2 (81.8,84.9]    7
## 3   (84.9,88]   16
## 4   (88,91.1]   11
## 5 (91.1,94.2]    2
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (78.7,81.8]    1 0.02702703  2.702703
## 2 (81.8,84.9]    7 0.18918919 18.918919
## 3   (84.9,88]   16 0.43243243 43.243243
## 4   (88,91.1]   11 0.29729730 29.729730
## 5 (91.1,94.2]    2 0.05405405  5.405405

Gr?ficas de pastel. ELECTRICA Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de ELECTRICA FD

clases <- nclass.FD(electrica) 
clases
## [1] 9
tabla.intervalos <- transform(table(cut(electrica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (78.7,80.4]    1
## 2 (80.4,82.1]    0
## 3 (82.1,83.8]    5
## 4 (83.8,85.6]    3
## 5 (85.6,87.3]   12
## 6   (87.3,89]   10
## 7   (89,90.7]    2
## 8 (90.7,92.4]    2
## 9 (92.4,94.2]    2
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (78.7,80.4]    1 0.02702703  2.702703
## 2 (80.4,82.1]    0 0.00000000  0.000000
## 3 (82.1,83.8]    5 0.13513514 13.513514
## 4 (83.8,85.6]    3 0.08108108  8.108108
## 5 (85.6,87.3]   12 0.32432432 32.432432
## 6   (87.3,89]   10 0.27027027 27.027027
## 7   (89,90.7]    2 0.05405405  5.405405
## 8 (90.7,92.4]    2 0.05405405  5.405405
## 9 (92.4,94.2]    2 0.05405405  5.405405

Gr?ficas de pastel. ELECTRICA FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

etiquetas
## [1] "2.7  % de  (78.7,80.4]"   "0  % de  (80.4,82.1]"    
## [3] "13.51  % de  (82.1,83.8]" "8.11  % de  (83.8,85.6]" 
## [5] "32.43  % de  (85.6,87.3]" "27.03  % de  (87.3,89]"  
## [7] "5.41  % de  (89,90.7]"    "5.41  % de  (90.7,92.4]" 
## [9] "5.41  % de  (92.4,94.2]"
#pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

—————————————————————————————————————————

ELECTRONICA

Histogramas de ELECTRONICA Sturges, Scott y FD

electronica <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'ELECTRONICA')]

electronica
##  [1] 90.17 95.33 94.25 92.67 93.00 92.50 92.00 93.67 95.33 88.33 96.00
## [12] 97.50 95.00 97.00 99.17 96.50 97.50 91.00 97.17 90.60 98.50 93.80
## [23] 91.80 90.50 94.75 91.67 92.00 93.00 96.33 96.17 92.17 92.60 93.40
## [34] 93.33 70.00
n <- length(electronica)

n
## [1] 35
hist(electronica, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos ELECTRONICA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(electronica, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos ELECTRONICA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(electronica, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos ELECTRONICA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de ELECTRONICA Sturges

clases <- nclass.Sturges(electronica) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(electronica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (70,74.2]    1
## 2 (74.2,78.3]    0
## 3 (78.3,82.5]    0
## 4 (82.5,86.7]    0
## 5 (86.7,90.8]    4
## 6   (90.8,95]   18
## 7   (95,99.2]   12
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (70,74.2]    1 0.02857143  2.857143
## 2 (74.2,78.3]    0 0.00000000  0.000000
## 3 (78.3,82.5]    0 0.00000000  0.000000
## 4 (82.5,86.7]    0 0.00000000  0.000000
## 5 (86.7,90.8]    4 0.11428571 11.428571
## 6   (90.8,95]   18 0.51428571 51.428571
## 7   (95,99.2]   12 0.34285714 34.285714
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "ELECTRONICA"))

Gr?ficas de pastel. ELECTRONICA Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  
etiquetas
## [1] "2.86  % de  (70,74.2]"    "0  % de  (74.2,78.3]"    
## [3] "0  % de  (78.3,82.5]"     "0  % de  (82.5,86.7]"    
## [5] "11.43  % de  (86.7,90.8]" "51.43  % de  (90.8,95]"  
## [7] "34.29  % de  (95,99.2]"
#pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

Tablas de Frecuencias de ELECTRONICA Scott

clases <- nclass.scott(electronica) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(electronica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (70,74.9]    1
## 2 (74.9,79.7]    0
## 3 (79.7,84.6]    0
## 4 (84.6,89.4]    1
## 5 (89.4,94.3]   19
## 6 (94.3,99.2]   14
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (70,74.9]    1 0.02857143  2.857143
## 2 (74.9,79.7]    0 0.00000000  0.000000
## 3 (79.7,84.6]    0 0.00000000  0.000000
## 4 (84.6,89.4]    1 0.02857143  2.857143
## 5 (89.4,94.3]   19 0.54285714 54.285714
## 6 (94.3,99.2]   14 0.40000000 40.000000

Gr?ficas de pastel. ELECTRONICA Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  
etiquetas
## [1] "2.86  % de  (70,74.9]"    "0  % de  (74.9,79.7]"    
## [3] "0  % de  (79.7,84.6]"     "2.86  % de  (84.6,89.4]" 
## [5] "54.29  % de  (89.4,94.3]" "40  % de  (94.3,99.2]"
# pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

Tablas de Frecuencias de ELECTRONICA FD

clases <- nclass.FD(electronica) 
clases
## [1] 12
tabla.intervalos <- transform(table(cut(electronica, breaks = clases)))

tabla.intervalos # es un data.frame
##           Var1 Freq
## 1    (70,72.4]    1
## 2  (72.4,74.9]    0
## 3  (74.9,77.3]    0
## 4  (77.3,79.7]    0
## 5  (79.7,82.2]    0
## 6  (82.2,84.6]    0
## 7    (84.6,87]    0
## 8    (87,89.4]    1
## 9  (89.4,91.9]    6
## 10 (91.9,94.3]   13
## 11 (94.3,96.7]    8
## 12 (96.7,99.2]    6
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##           Var1 Freq   Freq.Rel Freq.Porc
## 1    (70,72.4]    1 0.02857143  2.857143
## 2  (72.4,74.9]    0 0.00000000  0.000000
## 3  (74.9,77.3]    0 0.00000000  0.000000
## 4  (77.3,79.7]    0 0.00000000  0.000000
## 5  (79.7,82.2]    0 0.00000000  0.000000
## 6  (82.2,84.6]    0 0.00000000  0.000000
## 7    (84.6,87]    0 0.00000000  0.000000
## 8    (87,89.4]    1 0.02857143  2.857143
## 9  (89.4,91.9]    6 0.17142857 17.142857
## 10 (91.9,94.3]   13 0.37142857 37.142857
## 11 (94.3,96.7]    8 0.22857143 22.857143
## 12 (96.7,99.2]    6 0.17142857 17.142857

Gr?ficas de pastel. ELECTRONICA FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  
etiquetas
##  [1] "2.86  % de  (70,72.4]"    "0  % de  (72.4,74.9]"    
##  [3] "0  % de  (74.9,77.3]"     "0  % de  (77.3,79.7]"    
##  [5] "0  % de  (79.7,82.2]"     "0  % de  (82.2,84.6]"    
##  [7] "0  % de  (84.6,87]"       "2.86  % de  (87,89.4]"   
##  [9] "17.14  % de  (89.4,91.9]" "37.14  % de  (91.9,94.3]"
## [11] "22.86  % de  (94.3,96.7]" "17.14  % de  (96.7,99.2]"
# pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

—————————————————————————————————————————

INDUSTRIAL

Histogramas de INDUSTRIAL Sturges, Scott y FD

industrial <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'INDUSTRIAL')]

electronica
##  [1] 90.17 95.33 94.25 92.67 93.00 92.50 92.00 93.67 95.33 88.33 96.00
## [12] 97.50 95.00 97.00 99.17 96.50 97.50 91.00 97.17 90.60 98.50 93.80
## [23] 91.80 90.50 94.75 91.67 92.00 93.00 96.33 96.17 92.17 92.60 93.40
## [34] 93.33 70.00
n <- length(industrial)

n
## [1] 76
hist(industrial, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos INDUSTRIAL del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(industrial, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos INDUSTRIAL del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(industrial, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos INDUSTRIAL del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de INDUSTRIAL Sturges

clases <- nclass.Sturges(industrial) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(industrial, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (82.5,84.2]    2
## 2 (84.2,85.8]    3
## 3 (85.8,87.5]    4
## 4 (87.5,89.2]   14
## 5 (89.2,90.8]   18
## 6 (90.8,92.5]   18
## 7 (92.5,94.2]    8
## 8 (94.2,95.8]    9
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (82.5,84.2]    2 0.02631579  2.631579
## 2 (84.2,85.8]    3 0.03947368  3.947368
## 3 (85.8,87.5]    4 0.05263158  5.263158
## 4 (87.5,89.2]   14 0.18421053 18.421053
## 5 (89.2,90.8]   18 0.23684211 23.684211
## 6 (90.8,92.5]   18 0.23684211 23.684211
## 7 (92.5,94.2]    8 0.10526316 10.526316
## 8 (94.2,95.8]    9 0.11842105 11.842105
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "INDUSTRIAL"))

Gr?ficas de pastel. INDUSTRIAL Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de INDUSTRIAL Scott

clases <- nclass.scott(industrial) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(industrial, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (82.5,84.7]    3
## 2 (84.7,86.9]    5
## 3 (86.9,89.2]   15
## 4 (89.2,91.4]   22
## 5 (91.4,93.6]   17
## 6 (93.6,95.8]   14
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (82.5,84.7]    3 0.03947368  3.947368
## 2 (84.7,86.9]    5 0.06578947  6.578947
## 3 (86.9,89.2]   15 0.19736842 19.736842
## 4 (89.2,91.4]   22 0.28947368 28.947368
## 5 (91.4,93.6]   17 0.22368421 22.368421
## 6 (93.6,95.8]   14 0.18421053 18.421053

Gr?ficas de pastel. INDUSTRIAL Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de INDUSTRIAL FD

clases <- nclass.FD(industrial) 
clases
## [1] 9
tabla.intervalos <- transform(table(cut(industrial, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (82.5,84]    2
## 2   (84,85.5]    3
## 3 (85.5,86.9]    3
## 4 (86.9,88.4]   10
## 5 (88.4,89.9]   14
## 6 (89.9,91.4]   13
## 7 (91.4,92.9]   16
## 8 (92.9,94.3]    9
## 9 (94.3,95.8]    6
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (82.5,84]    2 0.02631579  2.631579
## 2   (84,85.5]    3 0.03947368  3.947368
## 3 (85.5,86.9]    3 0.03947368  3.947368
## 4 (86.9,88.4]   10 0.13157895 13.157895
## 5 (88.4,89.9]   14 0.18421053 18.421053
## 6 (89.9,91.4]   13 0.17105263 17.105263
## 7 (91.4,92.9]   16 0.21052632 21.052632
## 8 (92.9,94.3]    9 0.11842105 11.842105
## 9 (94.3,95.8]    6 0.07894737  7.894737

Gr?ficas de pastel. INDUSTRIAL FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

MECANICA

Histogramas de MECANICA Sturges, Scott y FD

mecanica <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'MECANICA')]

mecanica
##  [1] 87.67 86.83 84.83 81.67 94.17 93.17 78.00 94.00 88.67 81.40 81.00
## [12] 84.17 86.67 85.67 82.20 81.67 95.50 81.33 80.60 81.67 78.33 79.25
## [23] 91.50 83.80 85.17 84.75 84.00 90.50 91.33 79.33 85.00 82.50 86.50
## [34] 78.67 93.00 81.00 89.17 81.00 89.83 92.83 87.00 85.75 88.00 86.67
## [45] 87.83 86.33 73.25 88.83 82.67 81.38 78.00 74.20 80.25 92.33 89.50
## [56] 88.67 83.40 86.50 82.00 89.50 83.83 84.67 85.80
n <- length(mecanica)

n
## [1] 63
hist(mecanica, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos MECANICA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(mecanica, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos MECANICA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(mecanica, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos MECANICA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de MECANICA Sturges

clases <- nclass.Sturges(mecanica) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(mecanica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (73.2,76.4]    2
## 2 (76.4,79.6]    6
## 3 (79.6,82.8]   15
## 4   (82.8,86]   13
## 5   (86,89.1]   13
## 6 (89.1,92.3]    7
## 7 (92.3,95.5]    7
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (73.2,76.4]    2 0.03174603  3.174603
## 2 (76.4,79.6]    6 0.09523810  9.523810
## 3 (79.6,82.8]   15 0.23809524 23.809524
## 4   (82.8,86]   13 0.20634921 20.634921
## 5   (86,89.1]   13 0.20634921 20.634921
## 6 (89.1,92.3]    7 0.11111111 11.111111
## 7 (92.3,95.5]    7 0.11111111 11.111111
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "MECANICA"))

Gr?ficas de pastel. MECANICA Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de MECANICA Scott

clases <- nclass.scott(mecanica) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(mecanica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (73.2,77]    2
## 2   (77,80.7]    8
## 3 (80.7,84.4]   18
## 4 (84.4,88.1]   18
## 5 (88.1,91.8]   10
## 6 (91.8,95.5]    7
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (73.2,77]    2 0.03174603  3.174603
## 2   (77,80.7]    8 0.12698413 12.698413
## 3 (80.7,84.4]   18 0.28571429 28.571429
## 4 (84.4,88.1]   18 0.28571429 28.571429
## 5 (88.1,91.8]   10 0.15873016 15.873016
## 6 (91.8,95.5]    7 0.11111111 11.111111

Gr?ficas de pastel. MECANICA Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de MECANICA FD

clases <- nclass.FD(mecanica) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(mecanica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (73.2,76.4]    2
## 2 (76.4,79.6]    6
## 3 (79.6,82.8]   15
## 4   (82.8,86]   13
## 5   (86,89.1]   13
## 6 (89.1,92.3]    7
## 7 (92.3,95.5]    7
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (73.2,76.4]    2 0.03174603  3.174603
## 2 (76.4,79.6]    6 0.09523810  9.523810
## 3 (79.6,82.8]   15 0.23809524 23.809524
## 4   (82.8,86]   13 0.20634921 20.634921
## 5   (86,89.1]   13 0.20634921 20.634921
## 6 (89.1,92.3]    7 0.11111111 11.111111
## 7 (92.3,95.5]    7 0.11111111 11.111111

Gr?ficas de pastel. MECANICA FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

MECATRONICA

Histogramas de MECATRONICA Sturges, Scott y FD

mecatronica <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'MECATRONICA')]

mecatronica
##  [1] 88.83 85.67 84.67 85.83 81.60 82.20 83.60 90.00 85.00 88.00 87.33
## [12] 93.17 90.67 81.50 88.00 84.00 86.67 81.00 84.17 88.17 87.33 84.83
## [23] 86.17 85.80 82.17 84.00 84.67 88.00 89.67 89.50 86.00 84.80 89.67
## [34] 83.50 80.25 94.67 89.50 83.40 91.17 86.00 85.00 97.33 84.83 81.60
## [45] 89.33 81.00 83.50 88.17 86.50 86.75 88.33 92.00 81.50 89.33 84.17
## [56] 84.83 80.00 87.33 86.00 87.17 84.33 92.17 83.67 84.33 86.33 92.83
## [67] 94.60 87.00 90.50 82.80
n <- length(mecatronica)

n
## [1] 70
hist(mecatronica, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos MECATRONICA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(mecatronica, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos MECATRONICA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(mecatronica, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos MECATRONICA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de MECATRONICA Sturges

clases <- nclass.Sturges(mecatronica) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(mecatronica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (80,82.2]    8
## 2 (82.2,84.3]   14
## 3 (84.3,86.5]   16
## 4 (86.5,88.7]   14
## 5 (88.7,90.8]   10
## 6   (90.8,93]    4
## 7   (93,95.2]    3
## 8 (95.2,97.3]    1
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (80,82.2]    8 0.11428571 11.428571
## 2 (82.2,84.3]   14 0.20000000 20.000000
## 3 (84.3,86.5]   16 0.22857143 22.857143
## 4 (86.5,88.7]   14 0.20000000 20.000000
## 5 (88.7,90.8]   10 0.14285714 14.285714
## 6   (90.8,93]    4 0.05714286  5.714286
## 7   (93,95.2]    3 0.04285714  4.285714
## 8 (95.2,97.3]    1 0.01428571  1.428571
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "MECATRONICA"))

Gr?ficas de pastel. MECATRONICA Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de MECATRONICA Scott

clases <- nclass.scott(mecatronica) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(mecatronica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (80,82.9]   11
## 2 (82.9,85.8]   20
## 3 (85.8,88.7]   21
## 4 (88.7,91.6]   11
## 5 (91.6,94.4]    4
## 6 (94.4,97.3]    3
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (80,82.9]   11 0.15714286 15.714286
## 2 (82.9,85.8]   20 0.28571429 28.571429
## 3 (85.8,88.7]   21 0.30000000 30.000000
## 4 (88.7,91.6]   11 0.15714286 15.714286
## 5 (91.6,94.4]    4 0.05714286  5.714286
## 6 (94.4,97.3]    3 0.04285714  4.285714

Gr?ficas de pastel. MECATRONICA Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de MECATRONICA FD

clases <- nclass.FD(mecatronica) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(mecatronica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (80,82.2]    8
## 2 (82.2,84.3]   14
## 3 (84.3,86.5]   16
## 4 (86.5,88.7]   14
## 5 (88.7,90.8]   10
## 6   (90.8,93]    4
## 7   (93,95.2]    3
## 8 (95.2,97.3]    1
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (80,82.2]    8 0.11428571 11.428571
## 2 (82.2,84.3]   14 0.20000000 20.000000
## 3 (84.3,86.5]   16 0.22857143 22.857143
## 4 (86.5,88.7]   14 0.20000000 20.000000
## 5 (88.7,90.8]   10 0.14285714 14.285714
## 6   (90.8,93]    4 0.05714286  5.714286
## 7   (93,95.2]    3 0.04285714  4.285714
## 8 (95.2,97.3]    1 0.01428571  1.428571

Gr?ficas de pastel. MECATRONICA FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

QUIMICA

Histogramas de QUIMICA Sturges, Scott y FD

quimica <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'QUIMICA')]

quimica
##  [1] 89.83 92.00 82.40 85.17 83.00 87.50 86.20 89.67 86.50 82.50 95.17
## [12] 90.67 85.67 91.80 98.17 90.33 79.83 89.00 98.33 90.67 86.83 91.25
## [23] 91.83 83.33 81.17 81.33 82.33 95.50 87.17 91.33 95.50 88.33 88.67
## [34] 97.17 90.17 78.00 86.67 90.60 88.00 85.60 87.83 85.17 87.20 86.33
## [45] 93.33 86.00 81.50 93.00 86.20 84.83 85.17 85.80 80.00 83.60 93.00
## [56] 89.50 88.33 90.83 94.00 93.17 89.00 78.67 83.80 88.00 91.17 91.00
## [67] 95.33 89.83
n <- length(quimica)

n
## [1] 68
hist(quimica, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos QUIMICA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(quimica, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos QUIMICA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(quimica, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos QUIMICA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de QUIMICA Sturges

clases <- nclass.Sturges(quimica) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(quimica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (78,80.5]    4
## 2 (80.5,83.1]    7
## 3 (83.1,85.6]    8
## 4 (85.6,88.2]   15
## 5 (88.2,90.7]   14
## 6 (90.7,93.2]   11
## 7 (93.2,95.8]    6
## 8 (95.8,98.4]    3
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (78,80.5]    4 0.05882353  5.882353
## 2 (80.5,83.1]    7 0.10294118 10.294118
## 3 (83.1,85.6]    8 0.11764706 11.764706
## 4 (85.6,88.2]   15 0.22058824 22.058824
## 5 (88.2,90.7]   14 0.20588235 20.588235
## 6 (90.7,93.2]   11 0.16176471 16.176471
## 7 (93.2,95.8]    6 0.08823529  8.823529
## 8 (95.8,98.4]    3 0.04411765  4.411765
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "QUIMICA"))

Gr?ficas de pastel. QUIMICA Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de QUIMICA Scott

clases <- nclass.scott(quimica) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(quimica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (78,81.4]    6
## 2 (81.4,84.8]    8
## 3 (84.8,88.2]   20
## 4 (88.2,91.6]   19
## 5 (91.6,94.9]    8
## 6 (94.9,98.4]    7
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (78,81.4]    6 0.08823529  8.823529
## 2 (81.4,84.8]    8 0.11764706 11.764706
## 3 (84.8,88.2]   20 0.29411765 29.411765
## 4 (88.2,91.6]   19 0.27941176 27.941176
## 5 (91.6,94.9]    8 0.11764706 11.764706
## 6 (94.9,98.4]    7 0.10294118 10.294118

Gr?ficas de pastel. QUIMICA Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de QUIMICA FD

clases <- nclass.FD(quimica) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(quimica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (78,80.9]    4
## 2 (80.9,83.8]   10
## 3 (83.8,86.7]   13
## 4 (86.7,89.6]   13
## 5 (89.6,92.5]   16
## 6 (92.5,95.4]    7
## 7 (95.4,98.4]    5
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (78,80.9]    4 0.05882353  5.882353
## 2 (80.9,83.8]   10 0.14705882 14.705882
## 3 (83.8,86.7]   13 0.19117647 19.117647
## 4 (86.7,89.6]   13 0.19117647 19.117647
## 5 (89.6,92.5]   16 0.23529412 23.529412
## 6 (92.5,95.4]    7 0.10294118 10.294118
## 7 (95.4,98.4]    5 0.07352941  7.352941

Gr?ficas de pastel. QUIMICA FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

SISTEMAS

Histogramas de SISTEMAS Sturges, Scott y FD

sistemas <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'SISTEMAS')]

quimica
##  [1] 89.83 92.00 82.40 85.17 83.00 87.50 86.20 89.67 86.50 82.50 95.17
## [12] 90.67 85.67 91.80 98.17 90.33 79.83 89.00 98.33 90.67 86.83 91.25
## [23] 91.83 83.33 81.17 81.33 82.33 95.50 87.17 91.33 95.50 88.33 88.67
## [34] 97.17 90.17 78.00 86.67 90.60 88.00 85.60 87.83 85.17 87.20 86.33
## [45] 93.33 86.00 81.50 93.00 86.20 84.83 85.17 85.80 80.00 83.60 93.00
## [56] 89.50 88.33 90.83 94.00 93.17 89.00 78.67 83.80 88.00 91.17 91.00
## [67] 95.33 89.83
n <- length(sistemas)

n
## [1] 67
hist(sistemas, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos SISTEMAS del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(sistemas, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos SISTEMAS del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(sistemas, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos SISTEMAS del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de SISTEMAS Sturges

clases <- nclass.Sturges(sistemas) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(sistemas, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (76.7,78.9]    3
## 2 (78.9,81.2]    8
## 3 (81.2,83.5]   14
## 4 (83.5,85.8]   11
## 5   (85.8,88]   10
## 6   (88,90.3]   11
## 7 (90.3,92.6]    7
## 8 (92.6,94.8]    3
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (76.7,78.9]    3 0.04477612  4.477612
## 2 (78.9,81.2]    8 0.11940299 11.940299
## 3 (81.2,83.5]   14 0.20895522 20.895522
## 4 (83.5,85.8]   11 0.16417910 16.417910
## 5   (85.8,88]   10 0.14925373 14.925373
## 6   (88,90.3]   11 0.16417910 16.417910
## 7 (90.3,92.6]    7 0.10447761 10.447761
## 8 (92.6,94.8]    3 0.04477612  4.477612

Gr?ficas de pastel. SISTEMAS Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de SISTEMAS Scott

clases <- nclass.scott(sistemas) 
clases
## [1] 5
tabla.intervalos <- transform(table(cut(sistemas, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (76.7,80.3]    6
## 2 (80.3,83.9]   20
## 3 (83.9,87.6]   19
## 4 (87.6,91.2]   14
## 5 (91.2,94.8]    8
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (76.7,80.3]    6 0.08955224  8.955224
## 2 (80.3,83.9]   20 0.29850746 29.850746
## 3 (83.9,87.6]   19 0.28358209 28.358209
## 4 (87.6,91.2]   14 0.20895522 20.895522
## 5 (91.2,94.8]    8 0.11940299 11.940299
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "SISTEMAS"))

Gr?ficas de pastel. SISTEMAS Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de SISTEMAS FD

clases <- nclass.FD(sistemas) 
clases
## [1] 7
tabla.intervalos <- transform(table(cut(sistemas, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (76.7,79.3]    4
## 2 (79.3,81.9]   10
## 3 (81.9,84.5]   12
## 4   (84.5,87]   18
## 5   (87,89.6]   11
## 6 (89.6,92.2]    7
## 7 (92.2,94.8]    5
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (76.7,79.3]    4 0.05970149  5.970149
## 2 (79.3,81.9]   10 0.14925373 14.925373
## 3 (81.9,84.5]   12 0.17910448 17.910448
## 4   (84.5,87]   18 0.26865672 26.865672
## 5   (87,89.6]   11 0.16417910 16.417910
## 6 (89.6,92.2]    7 0.10447761 10.447761
## 7 (92.2,94.8]    5 0.07462687  7.462687

Gr?ficas de pastel. SISTEMAS FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

TIC

Histogramas de TIC Sturges, Scott y FD

tic <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'TIC')]

tic
##  [1] 89.33 92.20 87.40 81.33 84.83 94.00 90.80 86.60 83.00 85.80 91.67
## [12] 71.50 83.80 83.80 82.80 81.80 80.00 89.50 84.40 88.50 89.33 85.00
n <- length(tic)

n
## [1] 22
hist(tic, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos TIC del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(tic, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos TIC del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(tic, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos TIC del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de TIC Sturges

clases <- nclass.Sturges(tic) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(tic, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (71.5,75.2]    1
## 2   (75.2,79]    0
## 3   (79,82.8]    3
## 4 (82.8,86.5]    8
## 5 (86.5,90.2]    6
## 6   (90.2,94]    4
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (71.5,75.2]    1 0.04545455  4.545455
## 2   (75.2,79]    0 0.00000000  0.000000
## 3   (79,82.8]    3 0.13636364 13.636364
## 4 (82.8,86.5]    8 0.36363636 36.363636
## 5 (86.5,90.2]    6 0.27272727 27.272727
## 6   (90.2,94]    4 0.18181818 18.181818
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "TIC"))

Gr?ficas de pastel. TIC Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

# pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

Tablas de Frecuencias de TIC Scott

clases <- nclass.scott(tic) 
clases
## [1] 4
tabla.intervalos <- transform(table(cut(tic, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (71.5,77.1]    1
## 2 (77.1,82.8]    3
## 3 (82.8,88.4]   10
## 4   (88.4,94]    8
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (71.5,77.1]    1 0.04545455  4.545455
## 2 (77.1,82.8]    3 0.13636364 13.636364
## 3 (82.8,88.4]   10 0.45454545 45.454545
## 4   (88.4,94]    8 0.36363636 36.363636

Gr?ficas de pastel. TIC Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de TIC FD

clases <- nclass.FD(tic) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(tic, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1 (71.5,75.2]    1
## 2   (75.2,79]    0
## 3   (79,82.8]    3
## 4 (82.8,86.5]    8
## 5 (86.5,90.2]    6
## 6   (90.2,94]    4
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1 (71.5,75.2]    1 0.04545455  4.545455
## 2   (75.2,79]    0 0.00000000  0.000000
## 3   (79,82.8]    3 0.13636364 13.636364
## 4 (82.8,86.5]    8 0.36363636 36.363636
## 5 (86.5,90.2]    6 0.27272727 27.272727
## 6   (90.2,94]    4 0.18181818 18.181818

Gr?ficas de pastel. TIC FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

# pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

—————————————————————————————————————————

GESTION

Histogramas de GESTION Sturges, Scott y FD

gestion <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'GESTION')]

gestion
##  [1] 77.50 88.00 82.50 93.00 85.80 88.17 89.20 78.67 75.75 82.60 78.33
## [12] 85.00 95.00 82.40 91.83 90.17 83.50 81.80 93.17 92.20 87.50 90.00
## [23] 89.83 82.80 90.33 91.17 80.83 78.83 83.80 90.80 88.17 94.40 85.40
## [34] 85.83 85.83 87.83 94.83 90.80 92.50 80.83 90.00 91.60 87.40 85.80
## [45] 92.00 79.80 91.00 90.80 82.17 78.75 88.50 85.67 92.00 86.80 87.83
## [56] 93.17 78.00 85.57 81.50 87.60 86.00 78.67 92.50 81.50 87.00 73.00
## [67] 83.00 82.67 89.20 80.50
n <- length(gestion)

n
## [1] 70
hist(gestion, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos GESTION del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(gestion, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos GESTION del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(gestion, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos GESTION del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de GESTION Sturges

clases <- nclass.Sturges(gestion) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(gestion, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (73,75.8]    2
## 2 (75.8,78.5]    3
## 3 (78.5,81.2]    8
## 4   (81.2,84]   12
## 5   (84,86.8]    9
## 6 (86.8,89.5]   13
## 7 (89.5,92.2]   15
## 8   (92.2,95]    8
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (73,75.8]    2 0.02857143  2.857143
## 2 (75.8,78.5]    3 0.04285714  4.285714
## 3 (78.5,81.2]    8 0.11428571 11.428571
## 4   (81.2,84]   12 0.17142857 17.142857
## 5   (84,86.8]    9 0.12857143 12.857143
## 6 (86.8,89.5]   13 0.18571429 18.571429
## 7 (89.5,92.2]   15 0.21428571 21.428571
## 8   (92.2,95]    8 0.11428571 11.428571
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "GESTION"))

Gr?ficas de pastel. GESTION Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de GESTION Scott

clases <- nclass.scott(gestion) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(gestion, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (73,76.7]    2
## 2 (76.7,80.3]    8
## 3   (80.3,84]   15
## 4   (84,87.7]   14
## 5 (87.7,91.3]   18
## 6   (91.3,95]   13
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (73,76.7]    2 0.02857143  2.857143
## 2 (76.7,80.3]    8 0.11428571 11.428571
## 3   (80.3,84]   15 0.21428571 21.428571
## 4   (84,87.7]   14 0.20000000 20.000000
## 5 (87.7,91.3]   18 0.25714286 25.714286
## 6   (91.3,95]   13 0.18571429 18.571429

Gr?ficas de pastel. GESTION Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de GESTION FD

clases <- nclass.FD(gestion) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(gestion, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (73,76.7]    2
## 2 (76.7,80.3]    8
## 3   (80.3,84]   15
## 4   (84,87.7]   14
## 5 (87.7,91.3]   18
## 6   (91.3,95]   13
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (73,76.7]    2 0.02857143  2.857143
## 2 (76.7,80.3]    8 0.11428571 11.428571
## 3   (80.3,84]   15 0.21428571 21.428571
## 4   (84,87.7]   14 0.20000000 20.000000
## 5 (87.7,91.3]   18 0.25714286 25.714286
## 6   (91.3,95]   13 0.18571429 18.571429

Gr?ficas de pastel. GESTION FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

INFORMATICA

Histogramas de INFORMATICA Sturges, Scott y FD

informatica <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'INFORMATICA')]

informatica
##  [1] 78.00 81.50 82.00 85.20 86.67 86.60 86.00 84.20 80.33 84.33 87.00
## [12] 84.60 82.00 86.00 87.67 85.67 86.00 85.83 82.50 85.00 86.50 81.25
## [23] 92.67 86.17 85.00 81.83 85.33
n <- length(informatica)

n
## [1] 27
hist(informatica, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos INFORMATICA del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(informatica, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos INFORMATICA del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(informatica, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos INFORMATICA del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de INFORMATICA Sturges

clases <- nclass.Sturges(informatica) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(informatica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (78,80.4]    2
## 2 (80.4,82.9]    6
## 3 (82.9,85.3]    7
## 4 (85.3,87.8]   11
## 5 (87.8,90.2]    0
## 6 (90.2,92.7]    1
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (78,80.4]    2 0.07407407  7.407407
## 2 (80.4,82.9]    6 0.22222222 22.222222
## 3 (82.9,85.3]    7 0.25925926 25.925926
## 4 (85.3,87.8]   11 0.40740741 40.740741
## 5 (87.8,90.2]    0 0.00000000  0.000000
## 6 (90.2,92.7]    1 0.03703704  3.703704
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "INFORMATICA"))

Gr?ficas de pastel. INFORMATICA Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

# pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

Tablas de Frecuencias de INFORMATICA Scott

clases <- nclass.scott(informatica) 
clases
## [1] 5
tabla.intervalos <- transform(table(cut(informatica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (78,80.9]    2
## 2 (80.9,83.9]    6
## 3 (83.9,86.8]   16
## 4 (86.8,89.7]    2
## 5 (89.7,92.7]    1
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (78,80.9]    2 0.07407407  7.407407
## 2 (80.9,83.9]    6 0.22222222 22.222222
## 3 (83.9,86.8]   16 0.59259259 59.259259
## 4 (86.8,89.7]    2 0.07407407  7.407407
## 5 (89.7,92.7]    1 0.03703704  3.703704

Gr?ficas de pastel. INFORMATICA Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de INFORMATICA FD

clases <- nclass.FD(informatica) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(informatica, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (78,80.4]    2
## 2 (80.4,82.9]    6
## 3 (82.9,85.3]    7
## 4 (85.3,87.8]   11
## 5 (87.8,90.2]    0
## 6 (90.2,92.7]    1
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (78,80.4]    2 0.07407407  7.407407
## 2 (80.4,82.9]    6 0.22222222 22.222222
## 3 (82.9,85.3]    7 0.25925926 25.925926
## 4 (85.3,87.8]   11 0.40740741 40.740741
## 5 (87.8,90.2]    0 0.00000000  0.000000
## 6 (90.2,92.7]    1 0.03703704  3.703704

Gr?ficas de pastel. INFORMATICA FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

# pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) # No puede hacer pastel porque trae 0 la frecuencia. Pendiente

—————————————————————————————————————————

ADMINISTRACION

Histogramas de ADMINISTRACION Sturges, Scott y FD

administracion <- datos$promedio[which(datos$promedio > 0 & datos$semetre == 2 & datos$carrera == 'ADMINISTRACION')]

administracion
##  [1] 90.14 91.75 87.17 83.83 91.00 84.80 86.50 79.40 79.00 79.50 85.00
## [12] 89.67 83.00 90.00 92.00 79.40 84.17 87.00 95.33 96.17 86.33 85.20
## [23] 88.17 86.75 90.80 89.83 92.17 87.50 88.50 82.75 89.40 91.50 85.50
## [34] 91.25 90.17 95.00 83.60 92.40 86.20 92.67 90.75 90.00 90.67 90.00
## [45] 95.50 85.17 86.20 82.00 87.60 91.00 85.83 89.50 82.60 88.40 89.33
## [56] 90.00 93.00 91.60 77.00 96.17 88.00 92.60 83.00 91.40 94.00 87.17
## [67] 84.25 84.40 88.20 86.75 88.33 97.17 85.40 84.80 88.67 90.67 91.67
n <- length(administracion)

n
## [1] 77
hist(administracion, breaks = "Sturges", freq = TRUE, main = "Promedios de los alumnos ADMINISTRACION del ITD. Sturges", xlab = "Promedios", ylab = "Frecuencia")

hist(administracion, breaks = "Scott", freq = TRUE, main = "Promedios de los alumnos ADMINISTRACION del ITD. Scott", xlab = "Promedios", ylab = "Frecuencia")

hist(administracion, breaks = "FD", freq = TRUE, main = "Promedios de los alumnos ADMINISTRACION del ITD. FD", xlab = "Promedios", ylab = "Frecuencia")

Tablas de Frecuencias de ADMINISTRACION Sturges

clases <- nclass.Sturges(administracion) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(administracion, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (77,79.5]    5
## 2   (79.5,82]    1
## 3   (82,84.6]    9
## 4 (84.6,87.1]   15
## 5 (87.1,89.6]   14
## 6 (89.6,92.1]   21
## 7 (92.1,94.6]    6
## 8 (94.6,97.2]    6
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (77,79.5]    5 0.06493506  6.493506
## 2   (79.5,82]    1 0.01298701  1.298701
## 3   (82,84.6]    9 0.11688312 11.688312
## 4 (84.6,87.1]   15 0.19480519 19.480519
## 5 (87.1,89.6]   14 0.18181818 18.181818
## 6 (89.6,92.1]   21 0.27272727 27.272727
## 7 (92.1,94.6]    6 0.07792208  7.792208
## 8 (94.6,97.2]    6 0.07792208  7.792208
# *********************************************************************************
# VAMOS A ACUMULAR TODAS LAS CLASES EN UN NUEVO data.frame
# Luego determinar LAS FRECUENCIAS maximas de de cada carrera de un mismo data.frame
# solo usar la regla Struges para cuestiones pr?cticas

carreras.clases <- rbind(carreras.clases, cbind(tabla.intervalos, "CARRERA" = "ADMINISTRACION"))

Gr?ficas de pastel. ADMINISTRACION Sturges

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de ADMINISTRACION Scott

clases <- nclass.scott(administracion) 
clases
## [1] 6
tabla.intervalos <- transform(table(cut(administracion, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (77,80.4]    5
## 2 (80.4,83.7]    6
## 3 (83.7,87.1]   19
## 4 (87.1,90.4]   22
## 5 (90.4,93.8]   18
## 6 (93.8,97.2]    7
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (77,80.4]    5 0.06493506  6.493506
## 2 (80.4,83.7]    6 0.07792208  7.792208
## 3 (83.7,87.1]   19 0.24675325 24.675325
## 4 (87.1,90.4]   22 0.28571429 28.571429
## 5 (90.4,93.8]   18 0.23376623 23.376623
## 6 (93.8,97.2]    7 0.09090909  9.090909

Gr?ficas de pastel. ADMINISTRACION Scott

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

Tablas de Frecuencias de ADMINISTRACION FD

clases <- nclass.FD(administracion) 
clases
## [1] 8
tabla.intervalos <- transform(table(cut(administracion, breaks = clases)))

tabla.intervalos # es un data.frame
##          Var1 Freq
## 1   (77,79.5]    5
## 2   (79.5,82]    1
## 3   (82,84.6]    9
## 4 (84.6,87.1]   15
## 5 (87.1,89.6]   14
## 6 (89.6,92.1]   21
## 7 (92.1,94.6]    6
## 8 (94.6,97.2]    6
# Podemos agregar columnas al Data.Frame. Frecuencia Relativa y Frecuencia Porcentual
tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Rel' = tabla.intervalos$Freq / n) 

tabla.intervalos <- data.frame(tabla.intervalos, 'Freq.Porc' = tabla.intervalos$Freq.Rel * 100) 


tabla.intervalos
##          Var1 Freq   Freq.Rel Freq.Porc
## 1   (77,79.5]    5 0.06493506  6.493506
## 2   (79.5,82]    1 0.01298701  1.298701
## 3   (82,84.6]    9 0.11688312 11.688312
## 4 (84.6,87.1]   15 0.19480519 19.480519
## 5 (87.1,89.6]   14 0.18181818 18.181818
## 6 (89.6,92.1]   21 0.27272727 27.272727
## 7 (92.1,94.6]    6 0.07792208  7.792208
## 8 (94.6,97.2]    6 0.07792208  7.792208

Gr?ficas de pastel. ADMINISTRACION FD

# install.packages("plotrix") 
library(plotrix) 

# En porcentaje %
# paste significa concatenar, unir cadenas de caracteres
etiquetas <- paste(round(tabla.intervalos$Freq.Porc,2), " % de ", tabla.intervalos$Var1)  

pie3D(round(tabla.intervalos$Freq.Porc,2), labels = etiquetas, main = paste("Frecuencia de clases. % ", n, " Observaciones"), labelcex = 0.5) 

—————————————————————————————————————————

Todas las CARRERAS en un solo data.frame

# install.packages("dplyr")
library(dplyr) # Para oder usar filter como una funci?n para seleccionar registos con alguna condici?n
## Warning: package 'dplyr' was built under R version 3.4.4
## 
## 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
carreras.clases
##            Var1 Freq   Freq.Rel Freq.Porc        CARRERA
## 1   (77.3,79.5]    6 0.08333333  8.333333   ARQUITECTURA
## 2   (79.5,81.7]    6 0.08333333  8.333333   ARQUITECTURA
## 3     (81.7,84]   11 0.15277778 15.277778   ARQUITECTURA
## 4     (84,86.2]   18 0.25000000 25.000000   ARQUITECTURA
## 5   (86.2,88.4]   16 0.22222222 22.222222   ARQUITECTURA
## 6   (88.4,90.6]   11 0.15277778 15.277778   ARQUITECTURA
## 7   (90.6,92.8]    2 0.02777778  2.777778   ARQUITECTURA
## 8     (92.8,95]    2 0.02777778  2.777778   ARQUITECTURA
## 9   (77.5,79.7]    5 0.07692308  7.692308     BIOQUIMICA
## 10  (79.7,81.9]    7 0.10769231 10.769231     BIOQUIMICA
## 11  (81.9,84.1]   12 0.18461538 18.461538     BIOQUIMICA
## 12  (84.1,86.3]   10 0.15384615 15.384615     BIOQUIMICA
## 13  (86.3,88.5]   13 0.20000000 20.000000     BIOQUIMICA
## 14  (88.5,90.8]    8 0.12307692 12.307692     BIOQUIMICA
## 15    (90.8,93]    4 0.06153846  6.153846     BIOQUIMICA
## 16    (93,95.2]    6 0.09230769  9.230769     BIOQUIMICA
## 17  (77.3,79.5]    4 0.05970149  5.970149          CIVIL
## 18  (79.5,81.7]    6 0.08955224  8.955224          CIVIL
## 19  (81.7,83.8]    8 0.11940299 11.940299          CIVIL
## 20    (83.8,86]   12 0.17910448 17.910448          CIVIL
## 21    (86,88.2]   16 0.23880597 23.880597          CIVIL
## 22  (88.2,90.3]   13 0.19402985 19.402985          CIVIL
## 23  (90.3,92.5]    5 0.07462687  7.462687          CIVIL
## 24  (92.5,94.7]    3 0.04477612  4.477612          CIVIL
## 25  (78.7,80.9]    1 0.02702703  2.702703      ELECTRICA
## 26  (80.9,83.1]    3 0.08108108  8.108108      ELECTRICA
## 27  (83.1,85.3]    4 0.10810811 10.810811      ELECTRICA
## 28  (85.3,87.5]   15 0.40540541 40.540541      ELECTRICA
## 29  (87.5,89.7]    8 0.21621622 21.621622      ELECTRICA
## 30    (89.7,92]    4 0.10810811 10.810811      ELECTRICA
## 31    (92,94.2]    2 0.05405405  5.405405      ELECTRICA
## 32    (70,74.2]    1 0.02857143  2.857143    ELECTRONICA
## 33  (74.2,78.3]    0 0.00000000  0.000000    ELECTRONICA
## 34  (78.3,82.5]    0 0.00000000  0.000000    ELECTRONICA
## 35  (82.5,86.7]    0 0.00000000  0.000000    ELECTRONICA
## 36  (86.7,90.8]    4 0.11428571 11.428571    ELECTRONICA
## 37    (90.8,95]   18 0.51428571 51.428571    ELECTRONICA
## 38    (95,99.2]   12 0.34285714 34.285714    ELECTRONICA
## 39  (82.5,84.2]    2 0.02631579  2.631579     INDUSTRIAL
## 40  (84.2,85.8]    3 0.03947368  3.947368     INDUSTRIAL
## 41  (85.8,87.5]    4 0.05263158  5.263158     INDUSTRIAL
## 42  (87.5,89.2]   14 0.18421053 18.421053     INDUSTRIAL
## 43  (89.2,90.8]   18 0.23684211 23.684211     INDUSTRIAL
## 44  (90.8,92.5]   18 0.23684211 23.684211     INDUSTRIAL
## 45  (92.5,94.2]    8 0.10526316 10.526316     INDUSTRIAL
## 46  (94.2,95.8]    9 0.11842105 11.842105     INDUSTRIAL
## 47  (73.2,76.4]    2 0.03174603  3.174603       MECANICA
## 48  (76.4,79.6]    6 0.09523810  9.523810       MECANICA
## 49  (79.6,82.8]   15 0.23809524 23.809524       MECANICA
## 50    (82.8,86]   13 0.20634921 20.634921       MECANICA
## 51    (86,89.1]   13 0.20634921 20.634921       MECANICA
## 52  (89.1,92.3]    7 0.11111111 11.111111       MECANICA
## 53  (92.3,95.5]    7 0.11111111 11.111111       MECANICA
## 54    (80,82.2]    8 0.11428571 11.428571    MECATRONICA
## 55  (82.2,84.3]   14 0.20000000 20.000000    MECATRONICA
## 56  (84.3,86.5]   16 0.22857143 22.857143    MECATRONICA
## 57  (86.5,88.7]   14 0.20000000 20.000000    MECATRONICA
## 58  (88.7,90.8]   10 0.14285714 14.285714    MECATRONICA
## 59    (90.8,93]    4 0.05714286  5.714286    MECATRONICA
## 60    (93,95.2]    3 0.04285714  4.285714    MECATRONICA
## 61  (95.2,97.3]    1 0.01428571  1.428571    MECATRONICA
## 62    (78,80.5]    4 0.05882353  5.882353        QUIMICA
## 63  (80.5,83.1]    7 0.10294118 10.294118        QUIMICA
## 64  (83.1,85.6]    8 0.11764706 11.764706        QUIMICA
## 65  (85.6,88.2]   15 0.22058824 22.058824        QUIMICA
## 66  (88.2,90.7]   14 0.20588235 20.588235        QUIMICA
## 67  (90.7,93.2]   11 0.16176471 16.176471        QUIMICA
## 68  (93.2,95.8]    6 0.08823529  8.823529        QUIMICA
## 69  (95.8,98.4]    3 0.04411765  4.411765        QUIMICA
## 70  (76.7,80.3]    6 0.08955224  8.955224       SISTEMAS
## 71  (80.3,83.9]   20 0.29850746 29.850746       SISTEMAS
## 72  (83.9,87.6]   19 0.28358209 28.358209       SISTEMAS
## 73  (87.6,91.2]   14 0.20895522 20.895522       SISTEMAS
## 74  (91.2,94.8]    8 0.11940299 11.940299       SISTEMAS
## 75  (71.5,75.2]    1 0.04545455  4.545455            TIC
## 76    (75.2,79]    0 0.00000000  0.000000            TIC
## 77    (79,82.8]    3 0.13636364 13.636364            TIC
## 78  (82.8,86.5]    8 0.36363636 36.363636            TIC
## 79  (86.5,90.2]    6 0.27272727 27.272727            TIC
## 80    (90.2,94]    4 0.18181818 18.181818            TIC
## 81    (73,75.8]    2 0.02857143  2.857143        GESTION
## 82  (75.8,78.5]    3 0.04285714  4.285714        GESTION
## 83  (78.5,81.2]    8 0.11428571 11.428571        GESTION
## 84    (81.2,84]   12 0.17142857 17.142857        GESTION
## 85    (84,86.8]    9 0.12857143 12.857143        GESTION
## 86  (86.8,89.5]   13 0.18571429 18.571429        GESTION
## 87  (89.5,92.2]   15 0.21428571 21.428571        GESTION
## 88    (92.2,95]    8 0.11428571 11.428571        GESTION
## 89    (78,80.4]    2 0.07407407  7.407407    INFORMATICA
## 90  (80.4,82.9]    6 0.22222222 22.222222    INFORMATICA
## 91  (82.9,85.3]    7 0.25925926 25.925926    INFORMATICA
## 92  (85.3,87.8]   11 0.40740741 40.740741    INFORMATICA
## 93  (87.8,90.2]    0 0.00000000  0.000000    INFORMATICA
## 94  (90.2,92.7]    1 0.03703704  3.703704    INFORMATICA
## 95    (77,79.5]    5 0.06493506  6.493506 ADMINISTRACION
## 96    (79.5,82]    1 0.01298701  1.298701 ADMINISTRACION
## 97    (82,84.6]    9 0.11688312 11.688312 ADMINISTRACION
## 98  (84.6,87.1]   15 0.19480519 19.480519 ADMINISTRACION
## 99  (87.1,89.6]   14 0.18181818 18.181818 ADMINISTRACION
## 100 (89.6,92.1]   21 0.27272727 27.272727 ADMINISTRACION
## 101 (92.1,94.6]    6 0.07792208  7.792208 ADMINISTRACION
## 102 (94.6,97.2]    6 0.07792208  7.792208 ADMINISTRACION
# Los m?ximos de cada clase de cada carrera

carreras.clases.maximos <- NULL # inicializamos NULL

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "ARQUITECTURA")
## Warning: package 'bindrcpp' was built under R version 3.4.4
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "BIOQUIMICA")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "CIVIL")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "ELECTRICA")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "ELECTRONICA")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "INDUSTRIAL")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "MECANICA")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "MECATRONICA")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "QUIMICA")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "SISTEMAS")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "TIC")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "GESTION")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "INFORMATICA")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

temporal <- filter(carreras.clases, carreras.clases$CARRERA == "ADMINISTRACION")
carreras.clases.maximos <- rbind(carreras.clases.maximos, filter(temporal, temporal$Freq.Porc == max(temporal$Freq.Porc)))

# MOSTRAR ORDENADOS 
arrange(carreras.clases.maximos, CARRERA)
##           Var1 Freq  Freq.Rel Freq.Porc        CARRERA
## 1    (84,86.2]   18 0.2500000  25.00000   ARQUITECTURA
## 2  (86.3,88.5]   13 0.2000000  20.00000     BIOQUIMICA
## 3    (86,88.2]   16 0.2388060  23.88060          CIVIL
## 4  (85.3,87.5]   15 0.4054054  40.54054      ELECTRICA
## 5    (90.8,95]   18 0.5142857  51.42857    ELECTRONICA
## 6  (89.2,90.8]   18 0.2368421  23.68421     INDUSTRIAL
## 7  (90.8,92.5]   18 0.2368421  23.68421     INDUSTRIAL
## 8  (79.6,82.8]   15 0.2380952  23.80952       MECANICA
## 9  (84.3,86.5]   16 0.2285714  22.85714    MECATRONICA
## 10 (85.6,88.2]   15 0.2205882  22.05882        QUIMICA
## 11 (80.3,83.9]   20 0.2985075  29.85075       SISTEMAS
## 12 (82.8,86.5]    8 0.3636364  36.36364            TIC
## 13 (89.5,92.2]   15 0.2142857  21.42857        GESTION
## 14 (85.3,87.8]   11 0.4074074  40.74074    INFORMATICA
## 15 (89.6,92.1]   21 0.2727273  27.27273 ADMINISTRACION

Gr?fica de barras de los valore m?ximos de clases de promedio de cada carrera.

# install.packages("ggplot2")

library (ggplot2)
## Warning: package 'ggplot2' was built under R version 3.4.4
ggplot(data=carreras.clases.maximos[1:4,], aes(x=paste(CARRERA,Var1), y = Freq.Porc, fill=Freq)) + geom_bar(stat="identity")

ggplot(data=carreras.clases.maximos[5:8,], aes(x=paste(CARRERA,Var1), y = Freq.Porc, fill=Freq)) + geom_bar(stat="identity")

ggplot(data=carreras.clases.maximos[6:12,], aes(x=paste(CARRERA,Var1), y = Freq.Porc, fill=Freq)) + geom_bar(stat="identity")

ggplot(data=carreras.clases.maximos[13:15,], aes(x=paste(CARRERA,Var1), y = Freq.Porc, fill=Freq)) + geom_bar(stat="identity")

Gr?fica de puntos de todas la carreras promedios de alumnos de segundo semetre

ggplot(datos[which(datos$promedio > 0 & datos$semetre == 2),], aes(x = carrera, y = promedio)) + geom_point()