Teste Técnico Solvis

Author

Pedro Augusto Borges dos Santos

Published

July 27, 2022

Questão 1

Q: O que você tem a dizer sobre o gráfico abaixo? Quais análises e conclusões você pode extrair dele? Detalhe sua linha de pensamento que levou à essa análise.

R: Ambos eventos - mortes por afogamento e consumo de sorvete - apresentam maiores valores em meses que contêm maiores temperaturas na Espanha. As atividades relacionadas a esses eventos (nadar e consumo de sorvete) são mais comuns em dias de calor, assim, aumentando a exposição ao risco, no caso dos afogamentos, e a quantidade do consumo de sorvetes. Por mais que esses eventos aparentam ter forte correlação, não há uma relação causal entre eles.

Questão 2

Q: Qual é o resultado das funções abaixo? Explique cada uma das etapas do código.

R: O código resulta em um gráfico de barras agrupadas. Suas etapas estão explicadas a seguir.

Carrega o pacote plotly.

library(plotly)

Cria três vetores: o primeiro contêm os tipos de animais e os outros contêm as quantidades de cada animal em dois zoológicos.

Animals <- c("giraffes", "orangutans", "monkeys")
SF_Zoo <- c(20, 14, 23)
LA_Zoo <- c(12, 18, 29)

Agrupa os vetores em um data.frame de três colunas.

data <- data.frame(Animals, SF_Zoo, LA_Zoo)

Cria o gráfico fig a partir da função plot_ly(). O data.frame criado anteriormente contêm os dados de entrada. O gráfico criado é o de barras, definido pelo argumento type. No eixo x está presente os três tipos de animais e no eixo y a quantidade de cada tipo, com o nome definido por name.

fig <- plot_ly(data, x = ~Animals, y = ~SF_Zoo, type = "bar", name = "SF Zoo")

Adiciona um novo conjunto de barras através da função add_trace(), utilizando o mesmo eixo x e dimensão y baseada na variável LA_Zoo.

fig <- fig %>% add_trace(y = ~LA_Zoo, name = "LA Zoo")

Adiciona um título para o eixo y através do argumento title e modifica a posição das barras para “group”, deixando-as lado a lado. Por fim, fig é exibido.

fig <- fig %>% layout(yaxis = list(title = "Count"), barmode = "group")

fig

Questão 3

Q: Crie uma visualização que ache adequada para o dados abaixo:

R: Optou-se por criar uma série temporal.

library(tidyverse)

dados_teste <- read_csv2("data/dados_teste.csv")

dados_teste <- 
  dados_teste %>% 
    mutate(Mes = factor(
      Mes,
      levels = c(
      "janeiro", "fevereiro", "março", "abril", "maio", "junho",
      "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"
      )
    ))

time_series <- 
  ggplot(
    dados_teste,
    aes(x = Mes, y = Valor, group = Grupo, color = Grupo)
  ) +
  geom_line() +
  geom_point() + 
  theme_minimal() +
  labs(x = "Mês")

ggplotly(time_series)

Questão 4

Q: Explique a sequência de ações abaixo e o que você compreende da mesma. É importante que a explicação seja didática, como se estivesse explicando para uma pessoa leiga.

R: Em resumo, a função apresentada converte números em base decimal para números em base binária. A função trabalha na seguinte ordem:

  1. A função é ativada com o click da “bandeira verde”.
  2. A variável resultado é criada e associada a um valor vazio.
  3. A função pede um número e a resposta dada pelo usuário é armazenada na variável com o nome numero.
  4. Uma condição é definida: caso numero seja menor do que 256, a função segue para um processo de repetição. Caso numero não seja menor do que 256, a função associa resultado à mensagem “Número muito grande”.
  5. Dentro do processo de repetição ocorre três passos, repetidos oito vezes:
    1. A variável indicador é criada e seu valor é a sobra da divisão de numero por dois. Assim, indicador só pode ser 0 ou 1, dependendo se numero é par ou ímpar.

    2. Em seguida, resultado é associado a uma união de indicador com o resultado anterior, que no primeiro momento é um valor vazio.

    3. No fim, numero é transformado para a divisão de si mesmo por dois, sempre arredondando para baixo, caso não seja par.

  6. No fim da função o valor de resultado é retornado e o processo de cálculo se encerra. Caso numero inserido pelo usuário seja menor do que 256, o resultado é um número em base binária de oito algarismos.

Qual o motivo de se fazer oito repetições e só aceitar números menores do que 256? Oito repetições resulta em um número de oito algarismos, assim, a quantidade de repetições é o que controla os algarismos do resultado. Números na base binária com oito algarismos só conseguem representar números da base decimal entre 0 e 255, no caso de números inteiros positivos.