Este documento demonstra o uso de várias técnicas em R a fim de serem usados como referencia
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
registros <- read.csv("~/Documentos/alunosUFCGAnon.csv")
Remover Dados NA
registrosNNA <- na.omit(registros)
Cod_Evasao
0 = Não Desistiu
1 = Desistiu
Periodo
Períodos entre 2002.1 a 2014.1
Situacao Aprovado Trancado Reprovado
Reprovado por Falta
Tipo Obrigatória Optativa
Periodo_Ingresso Alunos que ingressaram no curso entre 1996.1 e 2014.1
Periodo_Relativo Período atual em relação ao período de ingresso no curso.
Usando Filtros
alunos_de_computacao <- registros[registros$Nome_Curso=='CIÊNCIA DA COMPUTAÇÃO - D',]
alunos_de_computacao <- filter(registros,Nome_Curso=='CIÊNCIA DA COMPUTAÇÃO - D')
O filter nesta execução apresenta uma eficiência melhor em 7% comparando com a versão clássica
Ordenando Campos
ordenado_por_periodo <- registros[order(-registros$Periodo),]
ordenado_por_matricula <- arrange(registros,desc(Matricula))
Selecionar apenas algumas colunas
select_periodo_curso_credito <- select(registros,Periodo:Creditos)
Sample randomicamente uma amostra
sample_n(select(registros,Matricula,Nome_Curso,Periodo,Situacao),3)
## Matricula Nome_Curso Periodo Situacao
## 756158 B31942 QUÍMICA (LIC) - D 2009.1 Aprovado
## 591017 B17228 DIREITO - N 2009.1 Aprovado
## 861958 B26646 ENG. DE BIOTECNOLOGIA E BIOPROCESSOS - D 2011.1 Aprovado
Ou Fracionaria
sample_frac(select(registros,Matricula,Nome_Curso,Periodo,Situacao),.00001)
## Matricula Nome_Curso Periodo Situacao
## 864118 B29565 EDUCAÇÃO DO CAMPO (LIC) - D 2013.1 Aprovado
## 623269 B19376 SERVIÇO SOCIAL - M 2013.1 Aprovado
## 316601 B24386 COMUNICAÇÃO SOCIAL - N 2010.2 Aprovado
## 864306 B24475 EDUCAÇÃO DO CAMPO (LIC) - D 2013.2 Aprovado
## 778923 B29630 FÍSICA (LIC) - N 2009.1 Aprovado
## 833331 B24966 CIÊNCIAS BIOLÓGICAS (LIC) - D 2014.1 Aprovado
## 129219 B15643 ADMINISTRAÇÃO - N 2006.2 Aprovado
## 427750 B16428 GEOGRAFIA (LIC) - D 2014.1 Aprovado
## 46791 B12750 ARTE E MÍDIA - D 2006.1 Aprovado
Agrupando Colunas
a <- summarise(group_by(registros,Cod_Evasao,Situacao))
Media por período
media_periodo <- summarise(group_by(registros,Periodo),media_periodo = mean(Media_Disciplina,na.rm=TRUE))
Media por periodo e centro
summarise(group_by(registros,Periodo,Centro),media_periodo = mean(Media_Disciplina,na.rm=TRUE))
## Source: local data frame [240 x 3]
## Groups: Periodo [?]
##
## Periodo Centro media_periodo
## (dbl) (int) (dbl)
## 1 2002.1 11 6.261074
## 2 2002.1 12 7.586207
## 3 2002.1 13 7.269258
## 4 2002.1 14 7.325455
## 5 2002.1 15 6.249438
## 6 2002.1 21 7.963333
## 7 2002.1 31 8.051477
## 8 2002.1 41 6.064122
## 9 2002.2 11 5.447073
## 10 2002.2 12 7.628673
## .. ... ... ...
Alem da media por periodo e centro, mostra tambem na ultima coluna a quantidade de alunos que pertencem ao centro e periodo especificado
summarise(group_by(registros,Periodo,Centro),media_periodo = mean(Media_Disciplina,na.rm=TRUE), count=n())
## Source: local data frame [240 x 4]
## Groups: Periodo [?]
##
## Periodo Centro media_periodo count
## (dbl) (int) (dbl) (int)
## 1 2002.1 11 6.261074 330
## 2 2002.1 12 7.586207 150
## 3 2002.1 13 7.269258 312
## 4 2002.1 14 7.325455 235
## 5 2002.1 15 6.249438 389
## 6 2002.1 21 7.963333 181
## 7 2002.1 31 8.051477 245
## 8 2002.1 41 6.064122 306
## 9 2002.2 11 5.447073 463
## 10 2002.2 12 7.628673 427
## .. ... ... ... ...
Acrescenta a media por evasao para cada periodo e centro especificado
periodo_centro <- summarise(group_by(registros,Periodo,Centro),media_periodo = mean(Media_Disciplina,na.rm=TRUE), count=n(),media_evasao=mean(Cod_Evasao,na.rm=TRUE))
periodo_centro
## Source: local data frame [240 x 5]
## Groups: Periodo [?]
##
## Periodo Centro media_periodo count media_evasao
## (dbl) (int) (dbl) (int) (dbl)
## 1 2002.1 11 6.261074 330 0.066666667
## 2 2002.1 12 7.586207 150 0.033333333
## 3 2002.1 13 7.269258 312 0.067307692
## 4 2002.1 14 7.325455 235 0.021276596
## 5 2002.1 15 6.249438 389 0.069408740
## 6 2002.1 21 7.963333 181 0.005524862
## 7 2002.1 31 8.051477 245 0.016326531
## 8 2002.1 41 6.064122 306 0.035947712
## 9 2002.2 11 5.447073 463 0.023758099
## 10 2002.2 12 7.628673 427 0.046838407
## .. ... ... ... ... ...
filter(periodo_centro,count > 500, media_evasao > 0.1)
## Source: local data frame [32 x 5]
## Groups: Periodo [12]
##
## Periodo Centro media_periodo count media_evasao
## (dbl) (int) (dbl) (int) (dbl)
## 1 2002.2 41 5.928247 541 0.1016636
## 2 2008.1 51 6.342638 2479 0.1105284
## 3 2009.1 14 5.961102 3580 0.1187151
## 4 2009.1 15 5.402454 3938 0.1312849
## 5 2009.1 91 5.889563 2014 0.1122145
## 6 2009.2 14 5.924040 3713 0.1071910
## 7 2009.2 71 6.252500 1520 0.1184211
## 8 2009.2 91 5.923178 2205 0.1092971
## 9 2010.1 14 6.219085 4180 0.1186603
## 10 2010.1 71 6.060550 3166 0.1317119
## .. ... ... ... ... ...