#Objetivo 
#* Determinar pendiente

#Descripcion 
#* Cargar datos
promedios <- read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/practicas%20R/datos/alumnos.csv")
head(promedios)
##   No..Control Semestre Cr..Apr. Carga Promedio
## 1    10040001        8      154    23    83.24
## 2    10040002        8      193    32    88.19
## 3    10040003        1       NA    27     0.00
## 4    10040004        2       22    28    82.40
## 5    10040005        5       77    28    81.59
## 6    10040006        1       NA    27     0.00
#Procedimiento 
#* Pendiente

#Librerias a utilizar 
# Cargar la librería previamente instalada
library(readr)

#Explorar los primeros y ultimos registros
head(promedios)
##   No..Control Semestre Cr..Apr. Carga Promedio
## 1    10040001        8      154    23    83.24
## 2    10040002        8      193    32    88.19
## 3    10040003        1       NA    27     0.00
## 4    10040004        2       22    28    82.40
## 5    10040005        5       77    28    81.59
## 6    10040006        1       NA    27     0.00
tail(promedios)
##     No..Control Semestre Cr..Apr. Carga Promedio
## 467    10040467        3       55    27    87.92
## 468    10040468        7      175    34    90.03
## 469    10040469       11      202    29    82.43
## 470    10040470        2       22    23    83.20
## 471    10040471        3       50    27    86.00
## 472    10040472        4       73    28    82.44
#Explorar promedios
str(promedios)
## 'data.frame':    472 obs. of  5 variables:
##  $ No..Control: int  10040001 10040002 10040003 10040004 10040005 10040006 10040007 10040008 10040009 10040010 ...
##  $ Semestre   : int  8 8 1 2 5 1 2 1 3 1 ...
##  $ Cr..Apr.   : int  154 193 NA 22 77 NA 17 NA 50 NA ...
##  $ Carga      : int  23 32 27 28 28 27 28 27 27 27 ...
##  $ Promedio   : num  83.2 88.2 0 82.4 81.6 ...
summary(promedios)
##   No..Control          Semestre         Cr..Apr.         Carga      
##  Min.   :10040001   Min.   : 1.000   Min.   :  0.0   Min.   : 4.00  
##  1st Qu.:10040119   1st Qu.: 2.000   1st Qu.: 54.0   1st Qu.:26.00  
##  Median :10040236   Median : 5.000   Median :105.0   Median :27.00  
##  Mean   :10040236   Mean   : 5.047   Mean   :110.5   Mean   :25.99  
##  3rd Qu.:10040354   3rd Qu.: 7.000   3rd Qu.:166.0   3rd Qu.:28.00  
##  Max.   :10040472   Max.   :14.000   Max.   :250.0   Max.   :35.00  
##                                      NA's   :79                     
##     Promedio    
##  Min.   : 0.00  
##  1st Qu.:78.99  
##  Median :82.45  
##  Mean   :69.94  
##  3rd Qu.:86.22  
##  Max.   :96.79  
## 
sum(promedios$Promedio) #Suma de variable Promedio
## [1] 33011.62
nrow(promedios) #N de registros de promedios
## [1] 472
#Depurar variables numericas a categorias o factores
promedios$No..Control <- as.factor(promedios$No..Control)

promedios$Semestre <- as.factor(promedios$Semestre)

str(promedios)
## 'data.frame':    472 obs. of  5 variables:
##  $ No..Control: Factor w/ 472 levels "10040001","10040002",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Semestre   : Factor w/ 14 levels "1","2","3","4",..: 8 8 1 2 5 1 2 1 3 1 ...
##  $ Cr..Apr.   : int  154 193 NA 22 77 NA 17 NA 50 NA ...
##  $ Carga      : int  23 32 27 28 28 27 28 27 27 27 ...
##  $ Promedio   : num  83.2 88.2 0 82.4 81.6 ...
summary(promedios)
##    No..Control     Semestre      Cr..Apr.         Carga          Promedio    
##  10040001:  1   1      : 77   Min.   :  0.0   Min.   : 4.00   Min.   : 0.00  
##  10040002:  1   2      : 67   1st Qu.: 54.0   1st Qu.:26.00   1st Qu.:78.99  
##  10040003:  1   7      : 60   Median :105.0   Median :27.00   Median :82.45  
##  10040004:  1   5      : 56   Mean   :110.5   Mean   :25.99   Mean   :69.94  
##  10040005:  1   3      : 47   3rd Qu.:166.0   3rd Qu.:28.00   3rd Qu.:86.22  
##  10040006:  1   8      : 32   Max.   :250.0   Max.   :35.00   Max.   :96.79  
##  (Other) :466   (Other):133   NA's   :79
#Filtrar solo alumnos de segundo semestre en adelante
#* Se necesita los promedios de los alumnos que van en 2 semestre en adelante
#* Subconjunto de datos de los de semestre 2 en adelante por medio de la función subset()
#* Se determina la media con la función mean()

#promediosA2adela <- subset(promedios, Semestre > 1)
promediosA2adela <- subset(promedios, Semestre != '1')
promedioreal <- mean(promediosA2adela$Promedio)
print(round(promedioreal, 2))
## [1] 83.57
#Interpretacion
#* Hay alumnos de 1 a 14 semetre, los alumnos de semesre 1 no tienen promedio ni créditos aprobados
#* El promedio de todos los alumnos incluyendo aquellos que están en primer semestre y que aún no cuentan con promedio 69.94
#* El promedio de los alumnos de los que están en segundo semestre o posterior es de 83.57

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.