Questão 1
# Gráficos MRT com layout()
MRT_1F <- c(517.1468, 85.1309, 30.3332, 12.6948, 3.3042, 1.1823, 1.1892)
MRT_3F <- c(156.6893, 11.5408, 0.4513, 0.4510, 0.4502, 0.4496, 0.4543)
MRT_5F <- c(83.9032, 0.3068, 0.3052, 0.3073, 0.3066, 0.3056, 0.3053)
MRT_10F <- c(29.5543, 0.1983, 0.1972, 0.1980, 0.1962, 0.2035, 0.1962)
MRT_15F <- c(11.3177, 0.1674, 0.1617, 0.1670, 0.1598, 0.1646, 0.1622)
MRT_sem_F <- c(11.9343, 0.6095, 0.6061, 0.6122, 0.6147, 0.6097, 0.6126)
clock <- c(0.1, 0.5, 1, 1.5, 2, 2.5, 3)
layout(matrix(1:6, ncol=2))
plot(clock, MRT_1F, type="b", col="blue", main="MRT_1F vs Clock")
plot(clock, MRT_3F, type="b", col="red", main="MRT_3F vs Clock")
plot(clock, MRT_5F, type="b", col="green", main="MRT_5F vs Clock")
plot(clock, MRT_10F, type="b", col="purple", main="MRT_10F vs Clock")
plot(clock, MRT_15F, type="b", col="orange", main="MRT_15F vs Clock")
plot(clock, MRT_sem_F, type="b", col="black", main="MRT_sem_F vs Clock")

barplot(MRT_1F, log="y", col=c("#E6E6E6", "#666666"), main="Escala Logarítmica MRT_1F")

Questão 2
refeicao <- data.frame(
Qualidade = c("Ruim", "Média", "Boa", "Excelente"),
Barato = c(5, 10, 20, 5),
Caro = c(2, 5, 15, 10)
)
barplot(as.matrix(t(refeicao[,-1])), beside=FALSE, col=c("skyblue", "orange"),
main="Qualidade da Refeição por Categoria de Preço", xlab="Qualidade", ylab="Frequência")
legend("topright", legend=c("Barato", "Caro"), fill=c("skyblue", "orange"))

Questão 3
data("airquality")
maio <- subset(airquality, Month == 5)
temp_c <- (maio$Temp - 32) / 1.8
hist(temp_c, col="lightblue", main="Temperaturas de Maio (°C)", xlab="Temperatura (°C)", freq=FALSE)
lines(density(temp_c), col="red", lwd=2)

Questão 4
tryCatch({
sales <- read.table("https://training-course-material.com/images/8/8f/Sales.txt", header=TRUE)
total_sales <- aggregate(sales$Sales ~ sales$Country, FUN=sum)
pct <- round(100 * total_sales[,2] / sum(total_sales[,2]), 1)
pie(total_sales[,2], labels=paste(total_sales[,1], pct, "%"), main="Total de Vendas por País")
legend("topright", legend=total_sales[,1], fill=rainbow(length(total_sales[,1])))
}, error = function(e) {
cat("⚠️ O arquivo Sales não está disponível ou o link retornou erro 404.\n")
})
## ⚠️ O arquivo Sales não está disponível ou o link retornou erro 404.
Questão 5
data("InsectSprays")
boxplot(count ~ spray, data=InsectSprays, col="yellow", outline=FALSE,
main="Contagem de Insetos por Inseticida", xlab="Inseticida", ylab="Contagem")

Questão 6
urls <- "https://www.dropbox.com/scl/fi/gyajp6p4bacdasymcguz6/monitoringCloudData.zip?dl=1"
tmp <- tempfile(fileext=".zip")
download.file(urls, tmp)
unzip(tmp, exdir=tempdir())
## Warning in unzip(tmp, exdir = tempdir()): erro 1 na extração a partir de
## arquivo zip
files <- list.files(tempdir(), pattern="csv$", full.names=TRUE)
layout(matrix(1:4, ncol=2))
for(f in files){
df <- read.csv(f)
df$currentTime <- as.POSIXct(df$currentTime)
df <- df %>% mutate(
usedMemory_MB = case_when(
grepl("GB", usedMemory) ~ as.numeric(gsub("[^0-9\\.]", "", usedMemory)) * 1024,
grepl("TB", usedMemory) ~ as.numeric(gsub("[^0-9\\.]", "", usedMemory)) * 1000000,
TRUE ~ as.numeric(gsub("[^0-9\\.]", "", usedMemory))
)
)
plot(df$currentTime, df$usedMemory_MB, type="l", col="blue",
main=basename(f), xlab="Tempo", ylab="Memória (MB)")
}
Questão 7
netflix <- read.csv("~/R/netflix.csv", stringsAsFactors=FALSE)
names(netflix) <- tolower(trimws(names(netflix)))
netflix_single_country <- netflix[!grepl(",", netflix$country) & !is.na(netflix$country), ]
country_counts <- sort(table(netflix_single_country$country), decreasing=TRUE)[1:10]
fig <- plot_ly(labels=names(country_counts), values=as.numeric(country_counts), type="pie") %>%
layout(title="Top 10 Países com Mais Conteúdo na Netflix")
fig
Questão 8
country_data <- data.frame(
País = names(country_counts),
Total = as.numeric(country_counts)
)
fig2 <- plot_ly(
type='table',
header=list(values=c("País", "Total de conteúdos"), fill=list(color="gray"),
font=list(color="white", size=14), align="center"),
cells=list(values=rbind(country_data$País, country_data$Total), align="center")
)
fig2
Questão 9
netflix$decade <- paste0(substr(netflix$release_year, 1, 3), "0s")
decade_data <- netflix %>% group_by(decade, type) %>% summarise(qtd = dplyr::n())
## `summarise()` has grouped output by 'decade'. You can override using the
## `.groups` argument.
fig3 <- plot_ly(decade_data, x=~decade, y=~qtd, color=~type, colors=c("blue","yellow"),
type="scatter", mode="lines+markers") %>%
layout(title="Conteúdos por Década", xaxis=list(title="Década"), yaxis=list(title="Quantidade"))
fig3
Questão 10
movies_2000_2010 <- subset(netflix, type=="Movie" & release_year >= 2000 & release_year <= 2010)
movies_2000_2010$main_genre <- sapply(strsplit(as.character(movies_2000_2010$listed_in), ","), `[`, 1)
genres <- c("Dramas", "Action & Adventure", "Comedies")
filtered <- movies_2000_2010[movies_2000_2010$main_genre %in% genres, ]
genre_year <- filtered %>% group_by(release_year, main_genre) %>% summarise(qtd = dplyr::n())
## `summarise()` has grouped output by 'release_year'. You can override using the
## `.groups` argument.
fig4 <- plot_ly(genre_year, x=~release_year, y=~qtd, color=~main_genre, type="bar") %>%
layout(barmode="group", title="Filmes por Gênero (2000-2010)",
xaxis=list(title="Ano"), yaxis=list(title="Quantidade"))
fig4