Exercícios

Questão 1

MRT_1F <- c(517.1468515630205, 85.13094142168089, 30.333207896694553,
12.694776264558937, 3.3041601673945418, 1.1823111717498882,
1.1892293502386786)

MRT_3F <- c(156.68929936163462, 11.540837783562276, 0.4512835621696538,
0.4509797929766453, 0.4502068233039181, 0.4496185276300172,
0.4543157082191288)

MRT_5F <- c(83.90319666471157, 0.3068151086494968, 0.30522314133037304,
0.3072588968084928, 0.30655265997285697, 0.3055812715727718,
0.3053297166713006)

MRT_10F <- c(29.55430642951759, 0.19832832665772515, 0.1971923924717474,
0.19796648905716516, 0.19615594370806338, 0.2034569237883263,
0.19617420889447737)

MRT_15F <- c(11.317736530583566, 0.167364215666193,
0.16172168266811013, 0.16701085329580515,
0.1598052657153692, 0.1645934043532696,
0.16216563797118075)

MRT_sem_F <- c(11.93430909937736, 0.6095414637034009,
0.6060645101029295, 0.612167181646899,
0.6146761002685637, 0.6096747087200697,
0.6125810476877268)

clock <- c(0.1, 0.5, 1, 1.5, 2, 2.5, 3)

layout(matrix(c(1,2), nrow = 1))

plot(clock, MRT_1F,
     type = "o",
     col = "blue",
     pch = 16,
     xlab = "Clock",
     ylab = "MRT",
     main = "Gráfico de Linhas")

lines(clock, MRT_3F, type = "o", col = "red", pch = 16)
lines(clock, MRT_5F, type = "o", col = "green", pch = 16)
lines(clock, MRT_10F, type = "o", col = "purple", pch = 16)
lines(clock, MRT_15F, type = "o", col = "orange", pch = 16)
lines(clock, MRT_sem_F, type = "o", col = "black", pch = 16)

legend("topright",
       legend = c("1F", "3F", "5F", "10F", "15F", "Sem F"),
       col = c("blue", "red", "green", "purple", "orange", "black"),
       lty = 1,
       pch = 16)

barplot(MRT_1F,
        log = "y",
        col = c("#E6E6E6", "#666666"),
        main = "Gráfico de Barras",
        xlab = "Posição",
        ylab = "Valores")

Questão 2

dados <- matrix(c(10,20,30,
                   15,25,35),
                 nrow = 2,
                 byrow = TRUE)

colnames(dados) <- c("Baixo", "Médio", "Alto")
rownames(dados) <- c("Ruim", "Boa")

barplot(dados,
        beside = FALSE,
        col = c("lightblue", "orange"),
        main = "Qualidade da Refeição",
        xlab = "Categoria de Preço",
        ylab = "Quantidade")

legend("topright",
       legend = rownames(dados),
       fill = c("lightblue", "orange"))

Questão 3

data(airquality)

TempC <- (airquality$Temp - 32) / 1.8

hist(TempC,
     probability = TRUE,
     col = "lightblue",
     main = "Histograma das Temperaturas",
     xlab = "Temperatura (°C)",
     ylab = "Densidade")

lines(density(TempC, na.rm = TRUE),
      col = "red",
      lwd = 2)

Questão 4

sales <- read.table(
"https://training-course-material.com/images/8/8f/Sales.txt",
header = TRUE)

porcentagem <- round(sales$SALES / sum(sales$SALES) * 100, 2)

rotulos <- paste(sales$COUNTRY,
                  porcentagem,
                  "%")

cores <- rainbow(nrow(sales))

pie(sales$SALES,
    labels = rotulos,
    col = cores,
    main = "Total de Vendas por País")

legend("topright",
       legend = sales$COUNTRY,
       fill = cores)

Questão 5

data(InsectSprays)

boxplot(count ~ spray,
         data = InsectSprays,
         outline = FALSE,
         col = "yellow",
         main = "Inseticidas x Contagem de Insetos",
         xlab = "Tipo de Inseticida",
         ylab = "Quantidade de Insetos")

Questão 6

cloud01 <- read.csv("monitoringCloudData_0.1.csv")
cloud05 <- read.csv("monitoringCloudData_0.5.csv")
cloud1 <- read.csv("monitoringCloudData_1.csv")
cloudNone <- read.csv("monitoringCloudData_NONE.csv")

converterMB <- function(x){

  valor <- as.numeric(gsub("[^0-9.]", "", x))

  if(grepl("TB", x)){
    valor <- valor * 1000000
  }

  else if(grepl("GB", x)){
    valor <- valor * 1024
  }

  return(valor)
}

ajustarDados <- function(df){

  df$currentTime <- as.POSIXct(df$currentTime)

  df$tempoHoras <- c(0,
                     cumsum(as.numeric(diff(df$currentTime),
                     units = "hours")))

  df$usedMemoryMB <- sapply(df$usedMemory,
                            converterMB)

  return(df)
}

cloud01 <- ajustarDados(cloud01)
cloud05 <- ajustarDados(cloud05)
cloud1 <- ajustarDados(cloud1)
cloudNone <- ajustarDados(cloudNone)

layout(matrix(c(1,2,3,4), nrow = 2))

plot(cloud01$tempoHoras,
     cloud01$usedMemoryMB,
     type = "l",
     col = "blue",
     xlab = "Tempo (horas)",
     ylab = "Memória (MB)",
     main = "Cloud 0.1")

plot(cloud05$tempoHoras,
     cloud05$usedMemoryMB,
     type = "l",
     col = "red",
     xlab = "Tempo (horas)",
     ylab = "Memória (MB)",
     main = "Cloud 0.5")

plot(cloud1$tempoHoras,
     cloud1$usedMemoryMB,
     type = "l",
     col = "green",
     xlab = "Tempo (horas)",
     ylab = "Memória (MB)",
     main = "Cloud 1")

plot(cloudNone$tempoHoras,
     cloudNone$usedMemoryMB,
     type = "l",
     col = "black",
     xlab = "Tempo (horas)",
     ylab = "Memória (MB)",
     main = "Cloud NONE")

Questão 7

library(plotly)
## Carregando pacotes exigidos: ggplot2
## 
## Anexando pacote: 'plotly'
## O seguinte objeto é mascarado por 'package:ggplot2':
## 
##     last_plot
## O seguinte objeto é mascarado por 'package:stats':
## 
##     filter
## O seguinte objeto é mascarado por 'package:graphics':
## 
##     layout
library(dplyr)
## 
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
## 
##     filter, lag
## Os seguintes objetos são mascarados por 'package:base':
## 
##     intersect, setdiff, setequal, union
netflix <- read.csv("netflix_titles.csv")

netflix_filtrado <- netflix %>%
  filter(!grepl(",", country),
         country != "")

top10 <- netflix_filtrado %>%
  count(country) %>%
  arrange(desc(n)) %>%
  head(10)

plot_ly(top10,
        labels = ~country,
        values = ~n,
        type = "pie")

Questão 8

plot_ly(
  type = 'table',
  header = list(
    values = c('País', 'Total de conteúdos'),
    fill = list(color = 'gray'),
    font = list(color = 'white'),
    align = 'center'
  ),
  cells = list(
    values = list(top10$country, top10$n),
    align = 'center'
  )
)

Questão 9

netflix$decada <- paste0(floor(netflix$release_year / 10) * 10, "s")

dados_decada <- netflix %>%
  group_by(decada, type) %>%
  summarise(total = n(), .groups = 'drop')

plot_ly(dados_decada,
        x = ~decada,
        y = ~total,
        color = ~type,
        colors = c("blue", "yellow"),
        type = 'scatter',
        mode = 'lines+markers')

Questão 10

filmes <- netflix %>%
  filter(type == "Movie")

filmes$genero <- sapply(
  strsplit(as.character(filmes$listed_in), ","),
  `[`,
  1
)

filmes$genero <- trimws(filmes$genero)

dados_genero <- filmes %>%
  filter(release_year >= 2000 &
         release_year <= 2010 &
         genero %in% c("Dramas",
                        "Action & Adventure",
                        "Comedies")) %>%
  group_by(release_year, genero) %>%
  summarise(total = n(), .groups = 'drop')

plot_ly(dados_genero,
        x = ~release_year,
        y = ~total,
        color = ~genero,
        type = 'bar') %>%
  layout(
    barmode = 'group',
    title = "Quantidade de Filmes por Gênero",
    xaxis = list(title = "Ano"),
    yaxis = list(title = "Quantidade")
  )