## Grafico geral das notas
breaks <- 0:10
## table(cut(notas$S1, breaks = breaks,
## right = FALSE, include.lowest = TRUE))
## Junta notas de todas as sabatinas em um único vetor
notas.all <- do.call(c, notas[, notas.col])
hist(notas.all, breaks = breaks, right = FALSE, include.lowest = TRUE,
main = "Notas gerais", xlab = "Notas", ylab = "Frequência absoluta")
boxplot(notas.all, horizontal = TRUE, ylim = c(0, 10),
col = "lightgray", add = TRUE)
Resumo dos cinco números, média, desvio-padrão, e número de provas não realizadas (NA):
statm <- function(x){
res <- c(fivenum(x),
mean(x, na.rm = TRUE),
sd(x, na.rm = TRUE),
sum(is.na(x)))
names(res) <- c("Min", "Q1", "Q2", "Q3", "Max", "Média", "s", "NAs")
return(res)
}
round(statm(notas.all), 2)
Min Q1 Q2 Q3 Max Média s NAs
0.00 4.90 7.00 8.90 10.00 6.46 2.53 58.00
Box plot de cada prova
## Boxplots comparando as notas entre sabatinas
boxplot(notas[, notas.col], ylim = c(0, 10), ylab = "Notas")
Resumo dos cinco números, média, desvio-padrão, e número de provas não realizadas (NA):
round(apply(notas[, notas.col], 2, statm), 2)
S1 S2 S3 S4 S5 S6
Min 3.00 0.20 0.80 0.00 1.00 3.00
Q1 7.50 3.50 4.50 2.50 5.50 6.00
Q2 8.50 5.50 6.00 5.00 7.00 7.50
Q3 9.00 8.00 7.00 7.50 9.00 9.00
Max 10.00 10.00 10.00 9.30 10.00 10.00
Média 8.07 5.78 5.69 5.08 6.61 7.29
s 1.62 2.78 2.33 2.77 2.34 2.09
NAs 5.00 9.00 8.00 14.00 11.00 11.00
Aqui estão apenas as notas individuais de cada sabatina. Veja na seção abaixo as médias finais calculadas!
kable(notas[, c(1, notas.col)], align = "c")
Matricula | S1 | S2 | S3 | S4 | S5 | S6 |
---|---|---|---|---|---|---|
20081784 | 6.0 | NA | 1.0 | 2.0 | 1.0 | 5.0 |
20095802 | 7.5 | 5.0 | 5.0 | 0.0 | 9.0 | 6.0 |
20102715 | 7.5 | NA | 2.0 | NA | 4.0 | 8.0 |
20104471 | NA | NA | 1.5 | 0.0 | 6.0 | 9.0 |
20110014 | 8.5 | 3.5 | 5.5 | 2.5 | NA | 4.0 |
20111904 | 8.0 | 3.7 | 5.5 | 2.0 | 6.0 | 9.0 |
20112119 | 9.5 | 9.0 | 6.0 | 3.8 | 7.0 | 10.0 |
20113413 | 9.0 | 8.0 | 5.0 | NA | 8.0 | 6.0 |
20113699 | 10.0 | 10.0 | 6.0 | 5.0 | 9.0 | 5.0 |
20120643 | 4.5 | 0.2 | 3.5 | NA | NA | NA |
20122965 | 8.5 | 9.8 | 6.0 | 7.3 | 9.0 | NA |
20127158 | NA | 1.0 | NA | 1.5 | 7.0 | 6.0 |
20127164 | 7.0 | 2.5 | 5.5 | NA | 4.0 | 4.0 |
20127187 | 8.5 | 7.8 | 7.0 | 6.5 | NA | 6.0 |
20127188 | 10.0 | 8.7 | 6.0 | 5.0 | 5.0 | 9.0 |
20127193 | 7.0 | 3.5 | 5.5 | 1.5 | 7.0 | 10.0 |
20127195 | 3.0 | 3.2 | 3.5 | 2.0 | 3.0 | 9.0 |
20127199 | 7.5 | 5.5 | 4.0 | 2.5 | 9.0 | 9.0 |
20127335 | 9.0 | NA | 7.0 | 4.8 | 7.0 | 4.0 |
20130130 | 9.5 | 9.8 | 8.5 | 9.0 | NA | NA |
20130438 | 9.0 | 6.5 | 8.0 | 9.0 | 9.0 | 6.0 |
20130617 | 9.0 | 5.5 | NA | NA | NA | NA |
20130702 | 9.0 | 2.2 | 3.0 | 5.0 | 8.0 | 8.0 |
20130845 | 5.0 | 2.0 | NA | NA | NA | NA |
20131405 | 8.8 | 7.5 | 8.0 | 8.0 | 9.0 | 10.0 |
20131728 | 9.0 | 3.7 | 0.8 | 4.5 | 5.0 | 5.0 |
20132175 | 9.0 | 7.5 | NA | 6.5 | 2.0 | 6.0 |
20132334 | 5.0 | 1.5 | NA | NA | NA | NA |
20132674 | NA | NA | NA | NA | NA | NA |
20133917 | 8.5 | 5.5 | 6.5 | 7.5 | 8.0 | 10.0 |
20134343 | 9.5 | 2.0 | 4.5 | 7.5 | 9.0 | 7.0 |
20134376 | 9.0 | 9.0 | 10.0 | NA | 7.0 | 4.0 |
20134627 | 8.5 | 4.0 | 4.5 | 6.5 | 4.5 | 7.0 |
20134720 | 6.0 | 7.5 | 6.0 | NA | NA | 3.0 |
20134749 | 9.5 | 9.3 | 10.0 | 8.0 | 9.0 | 9.5 |
20135523 | 9.5 | 10.0 | 7.0 | 9.0 | 10.0 | 8.0 |
20135660 | 8.5 | 6.5 | 7.0 | 5.8 | 6.0 | NA |
20135661 | 9.0 | 3.0 | 8.0 | NA | 7.0 | 7.0 |
20135663 | 9.5 | 5.0 | 5.0 | 4.8 | 6.0 | 7.0 |
20135762 | 9.0 | 8.3 | 7.0 | 4.5 | 7.0 | NA |
20136482 | 8.5 | NA | 7.0 | 2.0 | 6.0 | 9.0 |
20136617 | 5.5 | 7.8 | 8.0 | 9.3 | 9.0 | 9.0 |
20137249 | 8.5 | 4.5 | 8.5 | 3.5 | 7.0 | 9.0 |
20137377 | 9.5 | 8.5 | 8.5 | 9.0 | 8.0 | 5.0 |
20137518 | NA | NA | NA | NA | NA | NA |
20140179 | NA | NA | NA | NA | NA | NA |
20140223 | 6.0 | 4.5 | 1.5 | 3.5 | 3.0 | 9.0 |
20142261 | 7.0 | 5.5 | 3.0 | 3.0 | 7.0 | 9.0 |
20142768 | 8.0 | 6.4 | 6.0 | 7.0 | 9.0 | 6.0 |
20143033 | 7.5 | NA | 4.5 | NA | 1.0 | 9.0 |
20160023 | 10.0 | 8.0 | 8.5 | 8.5 | 7.0 | 10.0 |
Na tabela abaixo estão as notas consideradas para o cálculo da média final. Das 6 sabatinas, foram consideradas apenas as 4 com maiores notas (N1
, N2
, N3
, N4
). A frequência (F
) é o percentual de presença.
A média (M
) foi calculada com estas 4 notas, e já arredondada para cima nos seguintes casos:
Observação: a frequência só foi utilizada aqui para critério de arredondamento de nota. Mesmo que o aluno tenha frequência abaixo de 75%, é permitido fazer o exame.
A coluna de situação (S
) indica se o aluno foi aprovado (Ap
), ficou em exame (Ex
), ou foi reprovado (Re
).
##----------------------------------------------------------------------
## Tabela com as notas finais
## Ordena pelas maiores notas
notas2 <- apply(notas[, notas.col], 1, sort,
decreasing = TRUE, na.last = TRUE)
## Numero de provas consideradas
np <- 4
## Tabela com as np maiores notas
notas2 <- t(notas2[1:np, ])
## Calcula a media
notas2 <- cbind(notas2,
apply(notas2, 1, function(x) sum(x, na.rm = TRUE)/np))
## Insere o GRR
notas2 <- as.data.frame(cbind(notas$Matricula, notas2))
names(notas2) <- c("Matricula", paste0("N", 1:np), "Media")
## Insere a frequencia (Freq.rel2 de notas)
notas2$Freq.rel <- ceiling(notas$Freq.rel2*100)
## Arredonda a media para duas casa decimais
notas2$Media <- round(notas2$Media, 2)
## Regras para ser aprovado
## 1) Se 6.5 <= MF < 7.0 E Freq >= 75 entao SOMA difer
## Cria nova coluna e condicoes
notas2$Media2 <- notas2$Media
cond.nota1 <- notas2$Media >=6.5 & notas2$Media < 7
cond.nota2 <- notas2$Freq.rel >= 75
## Soma as diferencas
notas2$Media2[cond.nota1 & cond.nota2] <-
notas2$Media2[cond.nota1 & cond.nota2] +
difer(notas2$Media2[cond.nota1 & cond.nota2], 7)
## Regras para ir para exame
## 1) Se 3.5 <= MF < 4.0 E Freq >= 75 entao SOMA difer
## Cria condicoes
cond.exam1 <- notas2$Media >=3.5 & notas2$Media < 4
## Soma as diferencas
notas2$Media2[cond.exam1 & cond.nota2] <-
notas2$Media2[cond.exam1 & cond.nota2] +
difer(notas2$Media2[cond.exam1 & cond.nota2], 4)
##----------------------------------------------------------------------
## BONUS: aqui tem uma aluna que acertou uma questao bonus e ficou com
## uma prova com nota '12'. Portanto, deveria distribuir essa nota entre
## as outras provas dela. Como as outras tambem eram quase 10, vou
## atribuir 10 para todas as provas dela.
## grr <- 20154966
## notas2[notas2$Matricula == grr, ]
## Como ja esta com 10 nas 4 maiores nao precisa fazer isso.
##----------------------------------------------------------------------
##----------------------------------------------------------------------
## Tabela final
notas.fim <- notas2[, 1:5]
notas.fim$M <- notas2$Media2
notas.fim$F <- notas2$Freq.rel
##----------------------------------------------------------------------
## Antes do exame (Ex)
## Cria a coluna Situacao
notas.fim$S <- "Ap"
notas.fim$S[notas.fim$M >= 4 & notas.fim$M < 7] <- "Ex"
notas.fim$S[notas.fim$M < 4] <- "Re"
## Mostra tabela
## kable(notas.fim, align = "c")
Após o exame: as notas dos exames estão na coluna E
. A média final (MF
) é a mesma para quem não fez exame, e é a média entre a média final (M
) e a nota do exame (E
) para quem fez exame. A média final arredondada (MFA
) é a nota que será lançada no sistema. A coluna SF
mostra a situação final dos alunos após o exame.
##----------------------------------------------------------------------
## Após exame (Ex)
## Insere notas do exame
notas.fim$E <- notas$Ex
## Calcula média final (MF), que é média da nota final com a nota do
## exame (apenas para os que ficaram de exame)
notas.fim$MF <- notas.fim$M
notas.fim$MF[notas.fim$S == "Ex"] <- (notas.fim$M[notas.fim$S == "Ex"] +
notas.fim$E[notas.fim$S == "Ex"])/2
notas.fim$MF <- round(notas.fim$MF, 2)
## Calcula a média final arredonadada (MFA), que é a média multiplicada por
## 10 e arredondada para cima (é como será lançada no sistema)
notas.fim$MFA <- ceiling(notas.fim$MF*10)
## Cria a coluna Situacao final (SF), que indica a situação após exame
notas.fim$SF <- "Ap"
notas.fim$SF[notas.fim$MFA < 50] <- "Re"
## Mostra tabela
kable(notas.fim, align = "c")
Matricula | N1 | N2 | N3 | N4 | M | F | S | E | MF | MFA | SF |
---|---|---|---|---|---|---|---|---|---|---|---|
20081784 | 6.0 | 5.0 | 2.0 | 1.0 | 4.00 | 85 | Ex | 4.5 | 4.25 | 43 | Re |
20095802 | 9.0 | 7.5 | 6.0 | 5.0 | 7.00 | 85 | Ap | NA | 7.00 | 70 | Ap |
20102715 | 8.0 | 7.5 | 4.0 | 2.0 | 5.38 | 69 | Ex | 1.5 | 3.44 | 35 | Re |
20104471 | 9.0 | 6.0 | 1.5 | 0.0 | 4.12 | 50 | Ex | 3.0 | 3.56 | 36 | Re |
20110014 | 8.5 | 5.5 | 4.0 | 3.5 | 5.38 | 92 | Ex | 5.0 | 5.19 | 52 | Ap |
20111904 | 9.0 | 8.0 | 6.0 | 5.5 | 7.12 | 100 | Ap | NA | 7.12 | 72 | Ap |
20112119 | 10.0 | 9.5 | 9.0 | 7.0 | 8.88 | 85 | Ap | NA | 8.88 | 89 | Ap |
20113413 | 9.0 | 8.0 | 8.0 | 6.0 | 7.75 | 92 | Ap | NA | 7.75 | 78 | Ap |
20113699 | 10.0 | 10.0 | 9.0 | 6.0 | 8.75 | 96 | Ap | NA | 8.75 | 88 | Ap |
20120643 | 4.5 | 3.5 | 0.2 | NA | 2.05 | 65 | Re | NA | 2.05 | 21 | Re |
20122965 | 9.8 | 9.0 | 8.5 | 7.3 | 8.65 | 100 | Ap | NA | 8.65 | 87 | Ap |
20127158 | 7.0 | 6.0 | 1.5 | 1.0 | 4.00 | 75 | Ex | 6.0 | 5.00 | 50 | Ap |
20127164 | 7.0 | 5.5 | 4.0 | 4.0 | 5.12 | 100 | Ex | 3.0 | 4.06 | 41 | Re |
20127187 | 8.5 | 7.8 | 7.0 | 6.5 | 7.45 | 96 | Ap | NA | 7.45 | 75 | Ap |
20127188 | 10.0 | 9.0 | 8.7 | 6.0 | 8.43 | 96 | Ap | NA | 8.43 | 85 | Ap |
20127193 | 10.0 | 7.0 | 7.0 | 5.5 | 7.38 | 69 | Ap | NA | 7.38 | 74 | Ap |
20127195 | 9.0 | 3.5 | 3.2 | 3.0 | 4.67 | 88 | Ex | 3.5 | 4.08 | 41 | Re |
20127199 | 9.0 | 9.0 | 7.5 | 5.5 | 7.75 | 100 | Ap | NA | 7.75 | 78 | Ap |
20127335 | 9.0 | 7.0 | 7.0 | 4.8 | 7.00 | 96 | Ap | NA | 7.00 | 70 | Ap |
20130130 | 9.8 | 9.5 | 9.0 | 8.5 | 9.20 | 85 | Ap | NA | 9.20 | 92 | Ap |
20130438 | 9.0 | 9.0 | 9.0 | 8.0 | 8.75 | 92 | Ap | NA | 8.75 | 88 | Ap |
20130617 | 9.0 | 5.5 | NA | NA | 3.62 | 46 | Re | NA | 3.62 | 37 | Re |
20130702 | 9.0 | 8.0 | 8.0 | 5.0 | 7.50 | 96 | Ap | NA | 7.50 | 75 | Ap |
20130845 | 5.0 | 2.0 | NA | NA | 1.75 | 42 | Re | NA | 1.75 | 18 | Re |
20131405 | 10.0 | 9.0 | 8.8 | 8.0 | 8.95 | 96 | Ap | NA | 8.95 | 90 | Ap |
20131728 | 9.0 | 5.0 | 5.0 | 4.5 | 5.88 | 58 | Ex | 3.5 | 4.69 | 47 | Re |
20132175 | 9.0 | 7.5 | 6.5 | 6.0 | 7.25 | 65 | Ap | NA | 7.25 | 73 | Ap |
20132334 | 5.0 | 1.5 | NA | NA | 1.62 | 46 | Re | NA | 1.62 | 17 | Re |
20132674 | NA | NA | NA | NA | 0.00 | 0 | Re | NA | 0.00 | 0 | Re |
20133917 | 10.0 | 8.5 | 8.0 | 7.5 | 8.50 | 100 | Ap | NA | 8.50 | 85 | Ap |
20134343 | 9.5 | 9.0 | 7.5 | 7.0 | 8.25 | 88 | Ap | NA | 8.25 | 83 | Ap |
20134376 | 10.0 | 9.0 | 9.0 | 7.0 | 8.75 | 77 | Ap | NA | 8.75 | 88 | Ap |
20134627 | 8.5 | 7.0 | 6.5 | 4.5 | 7.00 | 96 | Ap | NA | 7.00 | 70 | Ap |
20134720 | 7.5 | 6.0 | 6.0 | 3.0 | 5.62 | 77 | Ex | 3.0 | 4.31 | 44 | Re |
20134749 | 10.0 | 9.5 | 9.5 | 9.3 | 9.57 | 92 | Ap | NA | 9.57 | 96 | Ap |
20135523 | 10.0 | 10.0 | 9.5 | 9.0 | 9.62 | 96 | Ap | NA | 9.62 | 97 | Ap |
20135660 | 8.5 | 7.0 | 6.5 | 6.0 | 7.00 | 88 | Ap | NA | 7.00 | 70 | Ap |
20135661 | 9.0 | 8.0 | 7.0 | 7.0 | 7.75 | 85 | Ap | NA | 7.75 | 78 | Ap |
20135663 | 9.5 | 7.0 | 6.0 | 5.0 | 7.00 | 85 | Ap | NA | 7.00 | 70 | Ap |
20135762 | 9.0 | 8.3 | 7.0 | 7.0 | 7.83 | 92 | Ap | NA | 7.83 | 79 | Ap |
20136482 | 9.0 | 8.5 | 7.0 | 6.0 | 7.62 | 88 | Ap | NA | 7.62 | 77 | Ap |
20136617 | 9.3 | 9.0 | 9.0 | 8.0 | 8.82 | 92 | Ap | NA | 8.82 | 89 | Ap |
20137249 | 9.0 | 8.5 | 8.5 | 7.0 | 8.25 | 58 | Ap | NA | 8.25 | 83 | Ap |
20137377 | 9.5 | 9.0 | 8.5 | 8.5 | 8.88 | 96 | Ap | NA | 8.88 | 89 | Ap |
20137518 | NA | NA | NA | NA | 0.00 | 0 | Re | NA | 0.00 | 0 | Re |
20140179 | NA | NA | NA | NA | 0.00 | 42 | Re | NA | 0.00 | 0 | Re |
20140223 | 9.0 | 6.0 | 4.5 | 3.5 | 5.75 | 77 | Ex | 0.0 | 2.88 | 29 | Re |
20142261 | 9.0 | 7.0 | 7.0 | 5.5 | 7.12 | 92 | Ap | NA | 7.12 | 72 | Ap |
20142768 | 9.0 | 8.0 | 7.0 | 6.4 | 7.60 | 96 | Ap | NA | 7.60 | 76 | Ap |
20143033 | 9.0 | 7.5 | 4.5 | 1.0 | 5.50 | 77 | Ex | 4.5 | 5.00 | 50 | Ap |
20160023 | 10.0 | 10.0 | 8.5 | 8.5 | 9.25 | 96 | Ap | NA | 9.25 | 93 | Ap |
Número de alunos em cada situação:
addmargins(table(notas.fim$S))
Ap Ex Re Sum
33 11 7 51
addmargins(table(notas.fim$SF))
Ap Re Sum
36 15 51
Gráfico de barras com os percentuais por situação:
par(mfrow = c(1, 2))
barplot(prop.table(table(notas.fim$S))*100,
xlab = "Situação", ylab = "Frequência (%)",
main = "Antes do exame")
barplot(prop.table(table(notas.fim$SF))*100,
xlab = "Situação", ylab = "Frequência (%)",
main = "Após o exame")
par(mfrow = c(1, 1))
Este conteúdo está disponível por meio da Licença Creative Commons 4.0