Melhora a exibição das notas.

parent 5093b060
......@@ -10,23 +10,24 @@ output:
# Pacotes.
rm(list = objects())
library(gdata)
# library(gdata)
library(tidyverse)
#-----------------------------------------------------------------------
# Matrícula.
path <- "/home/walmes/Dropbox/Ensino/ce089-2018-02/"
x <- read.xls(paste0(path, "RelatoriodeDiariodeClasseExcel.xls"),
x <- gdata::read.xls(paste0(path, "RelatoriodeDiariodeClasseExcel.xls"),
encoding = "latin1",
stringsAsFactors = FALSE,
skip = 6)
v <- names(x) %in% c("Matrícula", "Nome", "Faltas")
mat <- x %>%
select(c("Matrícula", "Nome")) %>%
select(names(x)[v]) %>%
filter(grepl("\\d$", Matrícula)) %>%
as_tibble() %>%
setNames(c("GRR", "nome")) %>%
rename("GRR" = "Matrícula", "nome" = "Nome") %>%
mutate(GRR = str_replace(GRR, "\\D+", "") %>% as.integer())
str(mat)
......@@ -42,7 +43,7 @@ str(nt)
# Seleção de variáveis.
nt <- nt %>%
select(`Data e hora`:`Nota revisada`)
str(nt, give.attr = FALSE)
str(nt)
# Renomeia variáveis.
names(nt) <- c("ts", "nome", "email", "item", "orig", "revis")
......@@ -51,9 +52,9 @@ names(nt) <- c("ts", "nome", "email", "item", "orig", "revis")
nt <- nt %>%
filter(grepl("^Sabatina", item),
!grepl("walmes", nome, ignore.case = TRUE))
str(nt, give.attr = FALSE)
str(nt)
# Cria a estampa de tempo para ordenação.
# Cria a estampa de tempo para ordenação cronológica dos registros.
ts_fmt <- "%A, %d %b %Y, %H:%M"
nt$ts <- as.POSIXct(nt$ts, format = ts_fmt)
......@@ -61,20 +62,20 @@ nt$ts <- as.POSIXct(nt$ts, format = ts_fmt)
nt <- nt %>%
arrange(nome, item, ts)
# Agrupa pegando o último registro por avaliação.
# Agrupa pegando o último registro por sabatina.
ntg <- nt %>%
group_by(nome, item) %>%
summarise(nota = last(revis)) %>%
ungroup()
str(ntg)
# Para verificar a escala de variação das notas.
# Para verificar a amplitude de escala das notas.
# ntg %>%
# group_by(item) %>%
# summarise(min = min(nota, na.rm = TRUE),
# max = max(nota, na.rm = TRUE))
# Cria a variável indentificadora da sabatina ao separar texto.
# Quebra texto em duas variáveis para ter sabatina e questão.
ntg <- ntg %>%
separate(col = "item",
into = c("S", "Q"),
......@@ -82,7 +83,7 @@ ntg <- ntg %>%
str(ntg)
# Passa notas para escala 0 - 100.
ntg$nota <- ifelse(ntg$S == "Sabatina 10", yes = 100, no = 10) * ntg$nota
ntg$nota <- ntg$nota * 10
# Calcula a média por sabatina e converte NA/NaN para 0.
ntg <- ntg %>%
......@@ -159,20 +160,14 @@ nts <- nts %>%
#-----------------------------------------------------------------------
# Tabela em HTML.
# nt$Nome <- paste(
# sub(pattern = "^(\\w+) .*$",
# replacement = "\\1",
# x = nt$Nome),
# sub(pattern = "^\\w.* (\\w+)$",
# replacement = "\\1",
# x = nt$Nome))
library(DT)
cap <-
"Notas nas avaliações (S: sabatina) ordenadas pelo GRR. Valores entre 0 e 100.*"
cap <- "Notas nas avaliações (S: sabatina) ordenadas pelo GRR. Valores entre 0 e 100."
if (require(htmltools)) {
cap <- HTML("<strong>Tabela 1</strong>:", cap)
}
dt <- datatable(data = select(nts, "GRR", contains("S")),
dt <- datatable(data = select(nts, "GRR", contains("S"), contains("Faltas")),
filter = "top",
caption = cap,
rownames = FALSE,
......@@ -183,7 +178,6 @@ dt <- datatable(data = select(nts, "GRR", contains("S")),
paging = FALSE,
pageLength = NULL,
lengthMenu = NULL))
# str(dt$x$data)
dt <- formatStyle(table = dt,
columns = grepl("^S", names(dt$x$data)),
......@@ -193,6 +187,14 @@ dt <- formatStyle(table = dt,
"gray",
"#3333ff")))
if (is.element("Faltas", names(dt$x$data))) {
dt <- formatStyle(table = dt,
columns = "Faltas",
color = styleInterval(cuts = c(15),
values = c("#3333ff",
"#ff3300")))
}
dt
```
......@@ -200,7 +202,7 @@ dt
#-----------------------------------------------------------------------
# Visualização.
cap <- "Escore final das sabatinas em função do GRR. Cores indicam grupos conforme corte do escore classes."
cap <- "**Figura 1**: Escore final das sabatinas em função do GRR. Cores indicam grupos conforme corte do escore classes."
# # Acumulada empírica.
# ggplot(nts, aes(x = S_escore)) +
......@@ -226,7 +228,22 @@ ggplot(data = nts,
xlim(0, 100)
```
```{r, eval = FALSE, echo = FALSE, results = "hide", fig.cap = cap}
```{r, echo = FALSE, fig.cap = cap, message = FALSE, warning = FALSE, results = "hide"}
ggplot(data = nts,
mapping = aes(y = S_escore,
x = Faltas)) +
geom_jitter(height = 0, width = 0.5) +
geom_smooth(se = FALSE, span = 0.8, color = "gray50")
# Correlação de Spearman.
x <- with(nts, cor.test(x = S_escore, y = Faltas, method = "spearman"))
x$p.value
cap <- "**Figura 2**: Diagrama de dispersão relacionando o escore final nas sabatinas e o número de faltas (Spearman, rho = %0.2f, valor p = %0.3g)."
cap <- sprintf(cap, x$estimate, x$p.value)
```
```{r, echo = FALSE, results = "hide", fig.cap = cap}
#-----------------------------------------------------------------------
# Análise multivariada das notas.
......@@ -249,7 +266,7 @@ pca$loadings
#--------------------------------------------
# Agrupamento hierárquico.
cap <- "Agrupamento hierárquico dos GRR baseado nas distâncias entre os vetores de notas das sabatinas."
cap <- "**Figura 3**: Agrupamento hierárquico dos GRR baseado nas distâncias entre os vetores de notas das sabatinas."
d <- dist(X)
hc <- hclust(d = d)
......@@ -264,7 +281,7 @@ plot(hc,
```
```{r, eval = FALSE, echo = FALSE, results = "asis"}
x <- knitr::kable(subset(nt, select = v),
x <- knitr::kable(nt,
caption = cap,
row.names = FALSE,
na.string = "",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment