1. Apresentação do Capítulo

Este capítulo abrangente, “Introdução ao R: Construindo Fundamentos em Programação e Visualização de Dados”, oferece uma jornada completa através dos principais aspectos da linguagem de programação R. Iniciando com a contextualização histórica e evolutiva do software R, os participantes explorarão conceitos fundamentais e sua importância na análise de dados.

A programação básica em R é abordada de maneira acessível, incluindo operações matemáticas, declaração de variáveis, manipulação de vetores e criação de data frames. Os participantes aprenderão a imprimir informações formatadas no console e a construir tabelas e data frames de maneira eficiente.

No módulo sobre estruturas de controle em R, são apresentadas técnicas avançadas, como o uso de funções, loops e estruturas condicionais (if() else()). A manipulação habilidosa de DataFrames, um componente crucial na análise de dados, é explorada em detalhes, oferecendo uma compreensão profunda da organização e extração de informações.

A ênfase na visualização de dados com ggplot2 constitui uma parte significativa do capítulo. Os participantes aprenderão a criar uma variedade de gráficos, incluindo dispersão, linhas, barras, histograma, setores e caixa. A introdução ao pacote ggplot2 proporcionará uma compreensão aprofundada das visualizações personalizadas e avançadas, com uma incursão no desenvolvimento de gráficos interativos utilizando o pacote plotly.

O capítulo é concluído com uma série de 70 exercícios práticos, permitindo que os participantes apliquem os conhecimentos adquiridos. Destinado a estudantes, profissionais e entusiastas, este capítulo equipa os participantes com habilidades práticas em programação R, análise de dados e criação de visualizações impactantes. Ao término, os participantes estarão preparados para explorar as possibilidades abrangentes oferecidas pela linguagem R no domínio da ciência de dados e análise estatística.

2. Introdução ao R e Operações Básicas

2.1 História da criação do software R

A história do software R remonta a uma necessidade crescente por ferramentas estatísticas poderosas, tanto na pesquisa acadêmica quanto na indústria. A busca por uma linguagem estatística livre e eficiente levou ao desenvolvimento do R, cujas raízes podem ser rastreadas até o S, uma linguagem de programação e ambiente de análise estatística criado nos Laboratórios Bell nos anos 70.

O projeto GNU, liderado por Richard Stallman, desempenhou um papel crucial ao promover a liberdade de software. O R começou a ganhar forma nas mãos de Ross Ihaka e Robert Gentleman na Universidade de Auckland, Nova Zelândia, no início dos anos 90. Em 1995, o R foi lançado publicamente, marcando o início de sua jornada como uma linguagem de programação de código aberto acessível a todos.

Desde então, o R evoluiu constantemente, impulsionado pela colaboração da comunidade global de usuários e desenvolvedores. Sua popularidade crescente reflete sua posição como uma ferramenta padrão na estatística, ciência de dados e pesquisa. O R não é apenas uma linguagem de programação, mas também uma comunidade engajada, demonstrando o poder da colaboração e da filosofia do código aberto na construção de ferramentas inovadoras para análise de dados.

2.2 Operações Matemáticas Básicas no R

O software R, concebido como uma linguagem estatística e ambiente de análise de dados, oferece uma robusta variedade de ferramentas para realizar operações matemáticas básicas. Essa capacidade fundamental permite aos usuários manipular e analisar dados de forma eficiente, desempenhando um papel crucial em diversas aplicações, desde análises estatísticas simples até modelagem estatística avançada.

No contexto do R, as operações matemáticas básicas são executadas de maneira intuitiva, proporcionando uma experiência acessível a usuários de diferentes níveis de familiaridade com a programação. Vamos explorar as operações mais fundamentais:

Adição (+): A operação de adição no R é utilizada para somar dois valores. Por exemplo, ao executar 3 + 5, o R retornará o resultado 8.

3+5
## [1] 8

Subtração (-): A subtração, representada pelo operador “-”, permite a obtenção da diferença entre dois valores. Se digitarmos 10 - 4, o R nos dará o resultado 6.

10-4
## [1] 6

Multiplicação (*): Para realizar a multiplicação de dois números, usamos o operador “*“. Ao digitar 2 * 6, o R nos fornecerá o produto, que é 12.

2*6
## [1] 12

Divisão (/): A operação de divisão, indicada pelo operador “/”, permite dividir um número pelo outro. Se executarmos 15 / 3, o R retornará o quociente 5.

15/3
## [1] 5

Essas operações são aplicáveis não apenas a números isolados, mas também a variáveis que contenham valores numéricos. Por exemplo, se tivermos uma variável a com valor 7 e outra variável b com valor 3, podemos realizar operações como a + b, a - b, a * b e a / b para obter os resultados desejados.

a = 7
b = 3
a+b
## [1] 10
a-b
## [1] 4
a*b
## [1] 21
a/b
## [1] 2.333333

Essa capacidade de realizar operações matemáticas básicas no R é fundamental para a manipulação eficaz de dados e a construção de algoritmos estatísticos mais complexos. Ao compreender e dominar esses conceitos, os usuários podem explorar todo o potencial do R como uma ferramenta versátil para análise estatística e científica.

2.3 Declaração de Variáveis

No universo da programação, a declaração de variáveis é um conceito fundamental, e no software R, isso desempenha um papel essencial para manipular dados de maneira eficiente. Vamos explorar como declarar variáveis e atribuir valores a elas nesta linguagem estatística.

2.3.1 Declarando variáveis:

Em R, declarar uma variável é uma tarefa simples. Podemos atribuir um valor a uma variável utilizando a sintaxe básica de <- ou =. Por exemplo:

# Usando a sintaxe <-
idade <- 25
idade
## [1] 25
# Ou usando a sintaxe =
nome = "João"
nome
## [1] "João"

Ambos os métodos são válidos e amplamente utilizados. A escolha entre <- e = geralmente depende da preferência pessoal do programador.

2.3.2 Tipos de Variáveis

R é uma linguagem de tipagem dinâmica, o que significa que não é necessário especificar explicitamente o tipo de variável ao declará-la. O R automaticamente atribui um tipo de dados à variável com base no valor atribuído.

# Exemplos de variáveis de diferentes tipos
numero <- 42         # Variável numérica
texto <- "Olá, R!"   # Variável de texto (string)
logico <- TRUE        # Variável lógica (booleana)

numero
## [1] 42
texto
## [1] "Olá, R!"
logico
## [1] TRUE

2.3.4 Atribuição de Valores

Podemos atribuir valores a variáveis de diferentes maneiras. Se tivermos múltiplos valores, podemos atribuí-los em uma única linha:

# Atribuição múltipla de valores
a <- 10
b <- 20
c <- 30

a
## [1] 10
b
## [1] 20
c
## [1] 30

Ou podemos atribuir valores diretamente durante a declaração da variável:

# Atribuição durante a declaração
d <- 40
e <- "R é poderoso!"

d
## [1] 40
e
## [1] "R é poderoso!"

Entender a declaração de variáveis no R é fundamental para trabalhar eficientemente com dados. Variáveis servem como recipientes para armazenar informações, e a habilidade de manipulá-las é um dos alicerces para a construção de scripts e análises mais complexas no R.

2.4 Declaração de Vetores

No ambiente do R, a manipulação eficaz de dados muitas vezes envolve o uso de vetores, uma estrutura fundamental que permite armazenar elementos de maneira ordenada. Vamos explorar como declarar e manipular vetores no R.

2.4.1 Declaração de Vetores

A criação de vetores no R pode ser realizada de diversas formas. A maneira mais comum é utilizando a função c() (concatenar), que combina elementos em um vetor. Por exemplo:

# Criando um vetor numérico
numeros <- c(1, 2, 3, 4, 5)
numeros
## [1] 1 2 3 4 5
# Criando um vetor de texto
cores <- c("vermelho", "verde", "azul")
cores
## [1] "vermelho" "verde"    "azul"

Outra forma é utilizando a função seq() para gerar sequências de números automaticamente:

# Criando um vetor de 1 a 10
sequencia <- seq(1, 10)
sequencia
##  [1]  1  2  3  4  5  6  7  8  9 10

2.4.2 Acesso a Elementos de Vetores

Uma vez criado um vetor, acessar seus elementos é crucial. No R, os índices dos vetores começam em 1. Por exemplo:

# Acessando o primeiro elemento do vetor
primeiro <- numeros[1]
primeiro
## [1] 1
# Acessando o segundo elemento do vetor
segundo <- numeros[2]
segundo
## [1] 2

2.4.3 Operações com Vetores

Operações aritméticas podem ser aplicadas a vetores de maneira eficiente, elemento por elemento:

# Multiplicação de cada elemento por 2
dobro <- numeros * 2
dobro
## [1]  2  4  6  8 10

2.4.5 Criação de Vetores Lógicos

Vetores lógicos são frequentemente usados em expressões condicionais. Por exemplo:

# Criando um vetor lógico baseado em uma condição
maior_que_tres <- numeros > 3
maior_que_tres
## [1] FALSE FALSE FALSE  TRUE  TRUE

2.4.6 Combinação de Vetores

A combinação de vetores pode ser feita através da função c() ou da função append(). Por exemplo:

# Combinação de dois vetores
combinado <- c(numeros, sequencia)
combinado
##  [1]  1  2  3  4  5  1  2  3  4  5  6  7  8  9 10

Utilizando a função append() para combinar dois vetores:

# Criando dois vetores iniciais
vetor1 <- c(1, 2, 3)
vetor2 <- c(4, 5, 6)

# Utilizando a função append() para combinar os dois vetores
vetor_combinado <- append(vetor1, vetor2)

# Exibindo os resultados
print("Vetor 1:")
## [1] "Vetor 1:"
print(vetor1)
## [1] 1 2 3
print("Vetor 2:")
## [1] "Vetor 2:"
print(vetor2)
## [1] 4 5 6
print("Vetor Combinado:")
## [1] "Vetor Combinado:"
print(vetor_combinado)
## [1] 1 2 3 4 5 6

Neste exemplo, temos dois vetores, vetor1 e vetor2, cada um contendo alguns valores. Utilizamos a função append() para combinar esses dois vetores em um novo vetor chamado vetor_combinado. A função append() aceita os argumentos do vetor de destino (o vetor ao qual desejamos adicionar elementos) e os elementos a serem adicionados.

Ao executar esse código, você verá que o vetor combinado agora contém todos os elementos dos dois vetores originais. Isso ilustra como a função append() pode ser útil para adicionar elementos a um vetor existente, criando uma nova versão do vetor com os elementos adicionados.

Compreender a declaração e manipulação de vetores no R é fundamental para a organização eficiente de dados. Vetores formam a base para estruturas de dados mais complexas e são amplamente utilizados na análise estatística e científica.

2.5 Comandos de Impressão (Print)

No R, a exibição de informações é uma parte essencial do processo de programação e análise de dados. Vamos explorar como utilizar o comando print() para exibir informações no console e introduzir o pacote glue como uma ferramenta poderosa para formatação de texto.

2.5.1 Utilização do comando print()

O comando print() é uma função fundamental para exibir resultados no console do R. Ele é comumente utilizado para imprimir valores de variáveis, resultados de cálculos ou mensagens informativas. Vejamos um exemplo simples:

# Utilizando o comando print() para exibir uma mensagem
mensagem <- "Olá, mundo!"
print(mensagem)
## [1] "Olá, mundo!"
# Exibindo o resultado de um cálculo
resultado <- 2 + 3
print(resultado)
## [1] 5

O comando print() é útil para visualizar resultados imediatos durante o desenvolvimento do código.

Utilização do comando sprintf()

No R, a função sprintf() pode ser utilizada para realizar formatação de strings de maneira similar ao que a função printf() faz em algumas linguagens como C ou Java. Aqui está um exemplo de como usar sprintf() para obter um comportamento semelhante:

# Utilizando a função sprintf() para formatar uma string
idade <- 25
altura <- 1.75

# Formatando a string usando sprintf()
mensagem_formatada <- sprintf("A pessoa tem %d anos e altura %.2f metros.",
                              idade, altura)

# Exibindo a mensagem formatada
cat(mensagem_formatada, "\n")
## A pessoa tem 25 anos e altura 1.75 metros.

Neste exemplo, %d é um marcador de posição para um número inteiro, e %f é um marcador de posição para um número de ponto flutuante. Os valores de idade e altura são fornecidos como argumentos adicionais à função sprintf(), que substitui os marcadores de posição pelos valores reais.

A função cat() é usada para imprimir a mensagem no console. O \n é um caractere de nova linha para garantir que a próxima saída seja exibida em uma linha separada.

Lembrando que, embora a função sprintf() possa ser usada dessa maneira, a prática mais comum no R é usar a função paste() ou paste0() para combinar strings. Essas funções são mais flexíveis e adequadas para muitas situações.

Apresentação do Pacote glue()

O pacote glue oferece uma abordagem mais flexível e legível para a formatação de texto no R. Ele permite incorporar expressões R dentro de strings, facilitando a criação de mensagens mais dinâmicas e personalizadas.

# Instalando e carregando o pacote glue (caso ainda não esteja instalado)
# install.packages("glue")
library(glue)

# Utilizando a função glue() para formatar e imprimir texto
nome <- "Alice"
idade <- 30

mensagem_formatada <- glue("A pessoa se chama {nome} e tem {idade} anos.")
print(mensagem_formatada)
## A pessoa se chama Alice e tem 30 anos.

A função glue() permite incluir variáveis diretamente no texto entre chaves {}, tornando a mensagem mais legível e fácil de manter.

Ao combinar o uso do print() para mensagens simples e o glue() para formatação mais complexa, os usuários do R têm à disposição ferramentas versáteis para comunicar informações de maneira eficaz durante o desenvolvimento e apresentação de resultados. Essas habilidades são essenciais ao criar scripts e relatórios claros e informativos.

Criação de Tabelas

No contexto do R, a criação de tabelas é essencial para organizar e visualizar dados de maneira estruturada. Vamos explorar como criar tabelas simples usando esta linguagem estatística.

Matriz como Base para Tabelas

No R, as tabelas frequentemente começam como matrizes, que são estruturas bidimensionais de dados. Vamos criar uma matriz simples para representar dados tabulares:

# Criando uma matriz simples
dados <- matrix(c(1, 2, 3, 4, 5, 6), ncol = 2)

# Exibindo a matriz
print("Matriz de Dados:")
## [1] "Matriz de Dados:"
print(dados)
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
## [3,]    3    6

Neste exemplo, a função matrix() é utilizada para criar uma matriz com dois valores em cada coluna. A opção ncol = 2 especifica que queremos duas colunas na matriz.

Convertendo Matriz em Tabela

Para transformar a matriz em uma tabela mais visual, podemos utilizar a função as.table():

# Convertendo a matriz em tabela
tabela_dados <- as.table(dados)

# Exibindo a tabela
print("Tabela de Dados:")
## [1] "Tabela de Dados:"
print(tabela_dados)
##   A B
## A 1 4
## B 2 5
## C 3 6

A função as.table() converte a matriz em um objeto de tabela, que é mais adequado para exibição e manipulação de dados tabulares.

Utilizando a Função data.frame()

Outra abordagem comum para criar tabelas no R é usar a função data.frame(), que permite criar estruturas de dados mais flexíveis e poderosas:

# Criando um data frame
dados_df <- data.frame(ID = c(1, 2, 3), 
                       Nome = c("Alice", "Bob", "Charlie"), 
                       Idade = c(25, 30, 22))

# Exibindo o data frame
print("Data Frame:")
## [1] "Data Frame:"
print(dados_df)
##   ID    Nome Idade
## 1  1   Alice    25
## 2  2     Bob    30
## 3  3 Charlie    22

Neste exemplo, criamos um data frame chamado dados_df com três colunas: “ID”, “Nome” e “Idade”. Cada coluna pode conter diferentes tipos de dados.

Os data frames são estruturas de dados fundamentais no R, proporcionando flexibilidade e eficácia na manipulação de dados tabulares. Vamos explorar como construir e investigar dados dentro de um data frame.

Construção de um Data Frame:

Para criar um data frame, podemos utilizar a função data.frame() e fornecer os dados para cada coluna. Vamos criar um exemplo simples:

# Criando um data frame
dados_df <- data.frame(
  Nome = c("Alice", "Bob", "Charlie"),
  Idade = c(25, 30, 22),
  Nota = c(90, 85, 95)
)

# Exibindo o data frame
print("Data Frame Inicial:")
## [1] "Data Frame Inicial:"
print(dados_df)
##      Nome Idade Nota
## 1   Alice    25   90
## 2     Bob    30   85
## 3 Charlie    22   95

Aqui, criamos um data frame chamado dados_df com três colunas: “Nome”, “Idade” e “Nota”. Cada coluna é representada por um vetor de dados.

Investigando Dados no Data Frame:

Uma vez criado o data frame, podemos explorar e investigar os dados de várias maneiras:

# Exibindo as primeiras linhas do data frame
print("Primeiras Linhas:")
## [1] "Primeiras Linhas:"
print(head(dados_df))
##      Nome Idade Nota
## 1   Alice    25   90
## 2     Bob    30   85
## 3 Charlie    22   95
# Resumo estatístico das variáveis numéricas
print("Resumo Estatístico:")
## [1] "Resumo Estatístico:"
print(summary(dados_df$Idade))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   22.00   23.50   25.00   25.67   27.50   30.00
print(summary(dados_df$Nota))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    85.0    87.5    90.0    90.0    92.5    95.0
# Filtrando dados com base em uma condição
print("Alunos com Nota > 90:")
## [1] "Alunos com Nota > 90:"
print(subset(dados_df, Nota > 90))
##      Nome Idade Nota
## 3 Charlie    22   95
  • head(): Exibe as primeiras linhas do data frame, proporcionando uma visão rápida dos dados.

  • summary(): Fornece um resumo estatístico das variáveis numéricas, como média, mínimo, máximo e quartis.

  • subset(): Permite filtrar dados com base em uma condição específica. No exemplo, estamos filtrando alunos com nota superior a 90.

Adição de Novos Dados:

Podemos adicionar novas colunas ou linhas ao data frame conforme necessário:

# Adicionando uma nova coluna
dados_df$Sexo <- c("F", "M", "M")

# Adicionando uma nova linha
nova_linha <- data.frame(Nome = "Diana", Idade = 28, Nota = 88, Sexo = "F")
dados_df <- rbind(dados_df, nova_linha)

# Exibindo o data frame atualizado
print("Data Frame Atualizado:")
## [1] "Data Frame Atualizado:"
print(dados_df)
##      Nome Idade Nota Sexo
## 1   Alice    25   90    F
## 2     Bob    30   85    M
## 3 Charlie    22   95    M
## 4   Diana    28   88    F

A função rbind() é usada para adicionar uma nova linha ao data frame.

Entender como construir, investigar e manipular dados em um data frame é crucial para análises de dados eficazes no R. Essas habilidades são fundamentais para explorar informações tabulares de maneira flexível e dinâmica.

A criação de tabelas no R é uma habilidade fundamental para analisar e apresentar dados de maneira clara. Seja usando matrizes ou data frames, o R fornece ferramentas poderosas para organizar informações tabulares de forma eficaz.

Funções, Laços, Estruturas Condicionais e Manipulação de DataFrames no R

Funções no R

Na segunda etapa do nosso curso, vamos mergulhar no intrigante universo das funções no R. As funções são blocos de código que executam tarefas específicas, proporcionando um caminho crucial para a modularidade e reutilização eficiente de código. Nesta aula, exploraremos tanto o uso de funções já incorporadas no R quanto a criação de nossas próprias.

Introdução às Funções no R:

As funções no R são como pequenos assistentes que realizam tarefas específicas quando chamados. Elas simplificam o código, tornando-o mais organizado e fácil de entender. Ao utilizar funções, podemos quebrar nosso programa em partes menores, facilitando a manutenção e o entendimento do código.

Funções Integradas:

O R já vem equipado com uma variedade de funções úteis para tarefas comuns. Vamos explorar algumas delas:

# Exemplos de funções integradas
media <- mean(c(2, 4, 6, 8, 10))
soma <- sum(1:5)
comprimento <- length(c("maçã", "banana", "laranja"))

media
## [1] 6
soma
## [1] 15
comprimento
## [1] 3

Aqui, utilizamos as funções mean(), sum() e length() para calcular a média de um vetor, a soma de uma sequência numérica e o comprimento de um vetor de palavras, respectivamente.

Criando Funções Próprias:

Criar nossas próprias funções no R é uma maneira poderosa de encapsular lógica específica para reutilização. Vejamos um exemplo simples:

# Criando uma função de saudação
saudacao <- function(nome) {
  mensagem <- paste("Olá, ", nome, "! Como você está?")
  return(mensagem)
}

# Chamando a função
print(saudacao("Maria"))
## [1] "Olá,  Maria ! Como você está?"

Neste exemplo, a função saudacao() recebe um argumento nome e retorna uma mensagem personalizada. A função é então chamada com o argumento “Maria”.

Vamos criar uma função em R que recebe um vetor numérico e retorna a soma, média e mediana desse vetor.

# Função que calcula a soma, média e mediana de um vetor
calcular_estatisticas <- function(vetor) {

  
  # Calcula a soma, média e mediana
  soma <- sum(vetor)
  media <- mean(vetor)
  mediana <- median(vetor)
  
  # Cria um vetor com os resultados
  resultados <- c(Soma = soma, Média = media, Mediana = mediana)
  
  return(resultados)
}

# Testando a função
vetor_teste <- c(10, 15, 20, 25, 30)
resultado <- calcular_estatisticas(vetor_teste)

# Exibindo os resultados
print(resultado)
##    Soma   Média Mediana 
##     100      20      20

Nesta função, calcular_estatisticas, começamos calculando a soma, média e mediana usando as funções sum(), mean() e median(). Os resultados são armazenados em um vetor chamado resultados, onde cada elemento recebe um nome descritivo (Soma, Média, Mediana).

A função retorna o vetor com os resultados. O teste com o vetor de teste c(10, 15, 20, 25, 30) mostra como utilizar a função e exibir os resultados.

Laços (Loops) no R

Entraremos no fascinante mundo dos loops no R. Loops são estruturas de controle de fluxo que nos permitem executar repetidamente um bloco de código. Vamos explorar as duas principais estruturas de repetição no R: o loop for e o loop while.

Loop for:

O loop for é amplamente utilizado quando sabemos quantas vezes queremos repetir uma determinada operação. Sua sintaxe básica é a seguinte:

# Exemplo de loop for
for (i in 1:5) {
  print(paste("Iteração", i))
}
## [1] "Iteração 1"
## [1] "Iteração 2"
## [1] "Iteração 3"
## [1] "Iteração 4"
## [1] "Iteração 5"

Neste exemplo, o loop for percorre os valores de 1 a 5 (inclusive) para a variável i e executa o bloco de código dentro do loop. A função paste() é usada para criar uma mensagem combinando a string “Iteração” com o valor de i.

Loop while:

O loop while é útil quando não sabemos antecipadamente quantas iterações serão necessárias, mas temos uma condição que, quando satisfeita, continua a execução do loop. Exemplo:

# Exemplo de loop while
contador <- 1

while (contador <= 5) {
  print(paste("Iteração", contador))
  contador <- contador + 1
}
## [1] "Iteração 1"
## [1] "Iteração 2"
## [1] "Iteração 3"
## [1] "Iteração 4"
## [1] "Iteração 5"

Neste exemplo, o loop while continuará executando enquanto a condição contador <= 5 for verdadeira. A cada iteração, a mensagem é impressa, e o contador é incrementado.

Utilizando Loops em Funções:

Loops são frequentemente usados em conjunto com funções para realizar tarefas repetitivas. Vamos criar uma função que usa um loop for para calcular a potência de um número:

# Função para calcular potência usando loop for
calcular_potencia <- function(base, expoente) {
  resultado <- 1
  
  for (i in 1:expoente) {
    resultado <- resultado * base
  }
  
  return(resultado)
}

# Testando a função
print(calcular_potencia(2, 3))  # Deve imprimir 8
## [1] 8

Neste exemplo, a função calcular_potencia utiliza um loop for para multiplicar a base pelo número de vezes especificado pelo expoente.

Estruturas Condicionais (if() else())

Entraremos no domínio das estruturas condicionais no R, proporcionando a capacidade de tomar decisões no código. Vamos explorar a estrutura condicional mais básica: if() else().

Estrutura if() else():

A estrutura condicional if() else() é crucial quando queremos que o código execute diferentes blocos de instruções com base em uma condição. Sua sintaxe básica é a seguinte:

# Exemplo de estrutura if() else()
idade <- 18

if (idade >= 18) {
  print("Você é maior de idade.")
} else {
  print("Você é menor de idade.")
}
## [1] "Você é maior de idade."

Neste exemplo simples, a estrutura if() else() verifica se a variável idade é maior ou igual a 18. Dependendo do resultado, uma mensagem específica é impressa.

Utilizando Estruturas Condicionais em Funções:

Estruturas condicionais são frequentemente integradas em funções para criar lógica mais complexa. Vamos criar uma função que verifica se um número é positivo, negativo ou zero:

# Função com estrutura condicional
verificar_numero <- function(numero) {
  if (numero > 0) {
    return("O número é positivo.")
  } else if (numero < 0) {
    return("O número é negativo.")
  } else {
    return("O número é zero.")
  }
}

# Testando a função
print(verificar_numero(-5))  # Deve imprimir "O número é negativo."
## [1] "O número é negativo."

Neste exemplo, a função verificar_numero utiliza a estrutura if() else if() else() para determinar se o número é positivo, negativo ou zero.

Integrando Estruturas Condicionais com Loops:

Loops e estruturas condicionais frequentemente trabalham juntos para criar lógica mais avançada. Vamos criar um loop que verifica a paridade dos números de 1 a 5:

# Loop com estrutura condicional
for (i in 1:5) {
  if (i %% 2 == 0) {
    print(paste(i, "é par."))
  } else {
    print(paste(i, "é ímpar."))
  }
}
## [1] "1 é ímpar."
## [1] "2 é par."
## [1] "3 é ímpar."
## [1] "4 é par."
## [1] "5 é ímpar."

Neste exemplo, o loop for verifica se cada número é par ou ímpar usando a operação %% (resto da divisão).

Manipulação de DataFrames

Aprofundaremos nossos conhecimentos em manipulação de DataFrames no R. Vamos utilizar funções próprias e comandos de decisão para demonstrar como acessar e manipular dados em DataFrames, explorando operações básicas como seleção de colunas, filtragem de linhas e criação de novas variáveis.

Acessando Colunas em um DataFrame:

Para acessar colunas específicas em um DataFrame, podemos utilizar o símbolo $. Vamos criar uma função que recebe um DataFrame e uma lista de colunas, retornando apenas essas colunas:

# Função para acessar colunas em um DataFrame
acessar_colunas <- function(data_frame, colunas) {
  return(data_frame[, colunas, drop = FALSE])
}

# Criando um DataFrame de exemplo
dados <- data.frame(
  Nome = c("Alice", "Bob", "Charlie"),
  Idade = c(25, 30, 22),
  Nota = c(90, 85, 95)
)

# Testando a função
print(acessar_colunas(dados, c("Nome", "Nota")))
##      Nome Nota
## 1   Alice   90
## 2     Bob   85
## 3 Charlie   95

Neste exemplo, a função acessar_colunas recebe um DataFrame e uma lista de colunas, retornando um novo DataFrame contendo apenas as colunas desejadas.

Filtragem de Linhas em um DataFrame:

Vamos criar uma função que filtra as linhas de um DataFrame com base em uma condição:

# Função para filtrar linhas em um DataFrame
filtrar_linhas <- function(data_frame, condicao) {
  return(data_frame[condicao, , drop = FALSE])
}

# Testando a função
print(filtrar_linhas(dados, dados$Idade > 25))
##   Nome Idade Nota
## 2  Bob    30   85

Neste exemplo, a função filtrar_linhas recebe um DataFrame e uma condição, retornando um novo DataFrame contendo apenas as linhas que satisfazem a condição.

Criação de Novas Variáveis em um DataFrame:

Vamos criar uma função que adiciona uma nova coluna a um DataFrame com base em uma operação:

# Função para criar nova variável em um DataFrame
criar_nova_variavel <- function(data_frame) {
  data_frame$Resultado <- ifelse(data_frame$Nota >= 90, "Aprovado", "Reprovado")
  return(data_frame)
}

# Testando a função
print(criar_nova_variavel(dados))
##      Nome Idade Nota Resultado
## 1   Alice    25   90  Aprovado
## 2     Bob    30   85 Reprovado
## 3 Charlie    22   95  Aprovado

Neste exemplo, a função criar_nova_variavel adiciona uma nova coluna chamada “Resultado” ao DataFrame com base em uma condição de nota.

Gráficos no R

A importância da representação visual

A visualização de dados é uma ferramenta poderosa para explorar padrões, identificar tendências e comunicar insights. A representação visual torna a informação mais acessível e compreensível, permitindo uma análise mais rápida e eficaz.

  • Facilita a Compreensão:

    • Gráficos simplificam conceitos complexos, tornando-os mais fáceis de entender.
  • Identificação de Padrões:

    • Visualizar dados ajuda na identificação rápida de padrões e anomalias.
  • Tomada de Decisões Informada:

    • Gráficos auxiliam na tomada de decisões informadas, baseadas em evidências visuais.
  • Comunicação Eficaz:

    • Apresentar informações visualmente é mais eficaz ao comunicar resultados a públicos diversos.

Pacote Básico do R

O pacote básico do R, ou seja, o que vem de padrão em sua instalação já traz uma ferramente gráfica muito útil e que apresentaremos a seguir.

Gráfico de Dispersão

O gráfico de dispersão é uma ferramenta valiosa na visualização de dados, especialmente quando queremos explorar a relação entre duas variáveis. Ele é eficaz para identificar padrões, tendências, e verificar se existe uma correlação entre os conjuntos de dados. Vamos explorar a importância desse tipo de gráfico e criar exemplos no R.

Importância do Gráfico de Dispersão:

  • Identificação de Correlações:
    • O gráfico de dispersão permite visualizar a relação entre duas variáveis, auxiliando na identificação de padrões e correlações.
  • Detecção de Outliers:
    • Facilita a identificação de pontos atípicos que podem ter um impacto significativo na análise.
  • Tendências e Padrões:
    • Ajuda a visualizar tendências ou padrões nos dados, fornecendo insights visuais imediatos.

Exemplo 1 - Gráfico de Dispersão Simples:

# Criando dados de exemplo
x <- c(1, 2, 3, 4, 5)
y <- c(3, 5, 7, 8, 10)

# Criando o gráfico de dispersão simples
plot(x, y,)

Neste exemplo simples, criamos um gráfico de dispersão usando os vetores x e y. Os parâmetros main, xlab, ylab, pch, e col são utilizados para adicionar um título, rótulos nos eixos, alterar o símbolo dos pontos e definir a cor.

Exemplo 2 - Personalizando Cores e Rótulos:

# Criando dados de exemplo
x <- c(1, 2, 3, 4, 5)
y <- c(3, 5, 7, 8, 10)

# Criando o gráfico de dispersão personalizado
plot(x, y, main="Gráfico de Dispersão Personalizado", 
     xlab="Variável X", ylab="Variável Y", pch=8, col="green")

Neste exemplo, personalizamos ainda mais o gráfico, alterando a cor dos pontos para verde e adicionando um título principal, subtítulo, além de definir cores diferentes para o título e o subtítulo.

Gráfico de Linhas

O gráfico de linhas é uma ferramenta fundamental para representar a variação de uma variável ao longo do tempo ou de uma sequência ordenada. Ele é amplamente utilizado em diversas áreas, desde finanças até ciências naturais (séries temporais). Vamos explorar a importância desse tipo de gráfico e criar exemplos no R.

Importância do Gráfico de Linhas:

  • Visualização de Tendências:
    • O gráfico de linhas é ideal para mostrar tendências ao longo do tempo, destacando padrões e comportamentos.
  • Comparação de Séries Temporais:
    • Facilita a comparação entre diferentes séries temporais em um único gráfico.
  • Variação de Dados:
    • Permite observar a variação de uma variável de forma contínua e suave.

Exemplo 1 - Gráfico de Linhas Simples:

# Criando dados de exemplo
tempo <- 1:10
dados <- c(3, 5, 8, 12, 9, 15, 18, 22, 20, 25)

# Criando o gráfico de linhas simples
plot(tempo, dados, type="l", col="red", lwd=2,
     main="Gráfico de Linhas Simples", xlab="Tempo", ylab="Dados")

Neste exemplo, utilizamos a função plot() com o parâmetro type="l" para criar um gráfico de linhas. Os parâmetros col e lwd são utilizados para definir a cor da linha e a largura da linha, respectivamente.

Exemplo 2 - Personalizando Cores e Adicionando Rótulos:

# Criando dados de exemplo
tempo <- 1:10
dados <- c(3, 5, 8, 12, 9, 15, 18, 22, 20, 25)

# Criando o gráfico de linhas personalizado
plot(tempo, dados, type="l", col="blue", lwd=2,)

# Adicionando título e rótulos personalizados
title(main="Variação ao Longo do Tempo", 
      sub="Dados de Exemplo", col.main="green", col.sub="purple")

Neste exemplo, personalizamos o gráfico de linhas, alterando a cor da linha para azul, a largura da linha para 2 e adicionando um título principal, subtítulo, além de definir cores diferentes para o título e o subtítulo.

Gráfico de Barras/Colunas

O gráfico de barras é uma das formas mais comuns de representar dados categóricos. Ele é eficaz na comparação de quantidades entre diferentes categorias. Vamos explorar a importância desse tipo de gráfico e criar exemplos no R.

Importância do Gráfico de Barras/Colunas:

  • Comparação de Categorias:
    • Permite a fácil comparação visual entre diferentes categorias.
  • Distribuição de Frequência:
    • Ideal para visualizar a distribuição de frequência de categorias.
  • Apresentação de Dados Categóricos:
    • Utilizado para representar dados qualitativos de maneira clara e eficaz.

Exemplo 1 - Gráfico de Barras Simples:

# Criando dados de exemplo
categorias <- c("A", "B", "C", "D", "E")
quantidades <- c(15, 22, 30, 18, 25)

# Criando o gráfico de barras simples
barplot(quantidades, names.arg=categorias, col="orange",
        main="Gráfico de Barras Simples", xlab="Categorias",
        ylab="Quantidades")

Neste exemplo, utilizamos a função barplot() para criar um gráfico de barras simples. Os parâmetros names.arg são utilizados para definir os rótulos das categorias, e col define a cor das barras.

Exemplo 2 - Personalizando Cores e Adicionando Rótulos:

# Criando dados de exemplo
categorias <- c("A", "B", "C", "D", "E")
quantidades <- c(15, 22, 30, 18, 25)

# Criando o gráfico de barras personalizado
barplot(quantidades, names.arg=categorias, 
        col=c("blue", "green", "red", "purple","yellow"),
        xlab="Categorias", ylab="Quantidades")

# Adicionando título e rótulos personalizados
title(main="Distribuição de Quantidades", sub="Dados de Exemplo", 
      col.main="brown", col.sub="darkblue")

Neste exemplo, personalizamos o gráfico de barras, alterando as cores das barras para diferentes categorias e adicionando um título principal, subtítulo, além de definir cores diferentes para o título e o subtítulo.

Gráfico de Histograma

O gráfico de histograma é amplamente utilizado para representar a distribuição de uma variável contínua. Ele é valioso para entender a forma da distribuição, identificar padrões e visualizar a concentração de dados em diferentes intervalos. Vamos explorar a importância desse tipo de gráfico e criar exemplos no R.

Importância do Gráfico de Histograma:

  • Visualização da Distribuição:
    • O histograma oferece uma representação visual clara da distribuição dos dados.
  • Identificação de Padrões:
    • Facilita a identificação de padrões, assimetrias e concentrações em dados contínuos.
  • Análise da Dispersão:
    • Permite avaliar a dispersão dos dados em diferentes intervalos.

Exemplo 1 - Histograma Simples:

# Criando dados de exemplo
dados <- c(10, 35, 20, 35, 30, 35, 30, 35, 30, 55, 60, 45, 60)

# Criando o histograma simples
hist(dados, col="skyblue", main="Histograma Simples", 
     xlab="Intervalos",
     ylab="Frequência")

Neste exemplo, utilizamos a função hist() para criar um histograma simples. O parâmetro col define a cor das barras.

Exemplo 2 - Personalizando Cores e Adicionando Rótulos:

# Criando dados de exemplo
dados <- c(10, 35, 20, 35, 30, 35, 30, 35, 30, 55, 60, 45, 60)

# Criando o histograma personalizado
hist(dados, col="salmon", main=" ", xlab="Intervalos",
     ylab="Frequência")

# Adicionando título e rótulos personalizados
title(main="Distribuição dos Dados", sub="Dados de Exemplo", 
      col.main="darkgreen", col.sub="purple")

Neste exemplo, personalizamos o histograma, alterando a cor das barras e adicionando um título principal, subtítulo, além de definir cores diferentes para o título e o subtítulo.

Gráfico de Setores

O gráfico de setores, também conhecido como gráfico de pizza, é uma forma eficaz de representar proporções em um todo. Ele destaca a participação de cada categoria em relação ao total. Vamos explorar a importância desse tipo de gráfico e criar exemplos no R.

Importância do Gráfico de Setores:

  • Representação Proporcional:
    • O gráfico de setores destaca visualmente a proporção de cada categoria em relação ao todo.
  • Facilidade de Compreensão:
    • É intuitivo e fácil de entender, mesmo para públicos não familiarizados com análises de dados.
  • Comparação de Partes para o Todo:
    • Permite comparar facilmente as contribuições de diferentes categorias para o conjunto total.

Exemplo 1 - Gráfico de Setores Simples:

# Criando dados de exemplo
proporcoes <- c(0.3, 0.2, 0.15, 0.1, 0.25)
categorias <- c("A", "B", "C", "D", "E")

# Criando o gráfico de setores simples
pie(proporcoes, labels=categorias, 
    col=c("red", "green", "blue", "orange","purple"),
    main="Gráfico de Setores Simples")

Neste exemplo, utilizamos a função pie() para criar um gráfico de setores simples. Os parâmetros labels são utilizados para definir os rótulos das categorias, e col define as cores das fatias.

Exemplo 2 - Personalizando Cores e Adicionando Rótulos:

# Criando dados de exemplo
proporcoes <- c(0.3, 0.2, 0.15, 0.1, 0.25)
categorias <- c("A", "B", "C", "D", "E")

# Criando o gráfico de setores personalizado
pie(proporcoes, labels=categorias,
    col=c("blue", "green", "red", "orange", "purple"), 
    main=" ")

# Adicionando título e rótulos personalizados
title(main="Distribuição de Proporções", sub="Dados de Exemplo",
      col.main="darkblue", col.sub="darkgreen")

Neste exemplo, personalizamos o gráfico de setores, alterando as cores das fatias e adicionando um título principal, subtítulo, além de definir cores diferentes para o título e o subtítulo.

Gráfico de Caixa

O gráfico de caixa, ou boxplot, é uma ferramenta poderosa para representar a distribuição estatística de um conjunto de dados. Ele fornece informações sobre a mediana, quartis, e identifica a presença de outliers. Vamos explorar a importância desse tipo de gráfico e criar exemplos no R.

Importância do Gráfico de Caixa:

  • Visualização da Distribuição:
    • O boxplot exibe a distribuição dos dados, destacando medidas estatísticas essenciais.
  • Identificação de Outliers:
    • Facilita a identificação de valores atípicos ou discrepantes no conjunto de dados.
  • Comparação de Grupos:
    • Permite comparar a distribuição de diferentes grupos de dados de forma eficaz.

Exemplo 1 - Gráfico de Caixa Simples:

# Criando dados de exemplo
grupo1 <- c(20, 25, 30, 35, 40)
grupo2 <- c(15, 18, 22, 27, 32)

# Criando o gráfico de caixa simples
boxplot(grupo1, grupo2, col=c("skyblue", "salmon"),
        names=c("Grupo 1", "Grupo 2"), 
        main="Gráfico de Caixa Simples", ylab="Valores")

Neste exemplo, utilizamos a função boxplot() para criar um gráfico de caixa simples com dois grupos. Os parâmetros col definem as cores dos boxplots e names atribuem rótulos aos grupos.

Exemplo 2 - Personalizando Cores e Adicionando Rótulos:

# Criando dados de exemplo
grupo1 <- c(20, 25, 30, 35, 40)
grupo2 <- c(15, 18, 22, 27, 32)

# Criando o gráfico de caixa personalizado
boxplot(grupo1, grupo2, col=c("orange", "lightgreen"),
        names=c("Grupo A", "Grupo B"), ylab="Valores")

# Adicionando título e rótulos personalizados
title(main="Distribuição Estatística", sub="Dados de Exemplo", 
      col.main="purple", col.sub="darkblue")

Neste exemplo, personalizamos o gráfico de caixa, alterando as cores dos boxplots e adicionando um título principal, subtítulo, além de definir cores diferentes para o título e o subtítulo.

Pacote ggplot2

O pacote ggplot2 é uma ferramenta poderosa e flexível para criar gráficos no ambiente estatístico R. Desenvolvido por Hadley Wickham, o ggplot2 segue a filosofia da “Gramática dos Gráficos” (Grammar of Graphics), proporcionando uma abordagem sistemática para a construção de visualizações complexas de maneira intuitiva e elegante.

Principais Características do ggplot2:

  1. Gramática dos Gráficos:
    • O ggplot2 baseia-se no princípio da “Gramática dos Gráficos”, que envolve a construção de gráficos através da combinação de elementos fundamentais, como dados, estética, geometria e camadas.
  2. Sintaxe Intuitiva:
    • A sintaxe do ggplot2 é projetada para ser intuitiva e fácil de compreender. Os usuários podem construir gráficos complexos com apenas algumas linhas de código.
  3. Camadas (Layers):
    • O conceito de camadas permite a sobreposição de diferentes elementos visuais, como pontos, linhas e barras, criando visualizações ricas e informativas.
  4. Facetas e Cores Dinâmicas:
    • Facetas permitem a criação de subgráficos com base em variáveis específicas, enquanto o controle dinâmico de cores facilita a representação de informações adicionais nos gráficos.

O ggplot2 oferece uma variedade de funcionalidades avançadas para personalizar gráficos e é amplamente utilizado na comunidade de análise de dados para criar visualizações estatísticas poderosas e esteticamente agradáveis. Ao longo do curso, exploraremos diferentes tipos de gráficos utilizando o ggplot2 para proporcionar uma compreensão abrangente das capacidades deste pacote.

Gráfico de Dispersão

Vamos criar um gráfico de dispersão simples utilizando o ggplot2. Neste exemplo, usaremos dados fictícios para representar a relação entre duas variáveis. Após o exemplo, explicarei cada recurso do ggplot2 utilizado.

# Instalação e carregamento do pacote ggplot2 
#(caso ainda não esteja instalado)
# install.packages("ggplot2")
library(ggplot2)

# Criando dados de exemplo
dados_dispersao <- data.frame(x = c(2, 4, 6, 8, 10),
                               y = c(5, 7, 9, 12, 15))

# Criando o gráfico de dispersão com ggplot2
ggplot(dados_dispersao, aes(x = x, y = y)) +
  geom_point(color = "blue", size = 3) +
  labs(title = "Gráfico de Dispersão com ggplot2",
       x = "Variável X",
       y = "Variável Y")

Explicação dos Recursos Utilizados:

  1. ggplot(): Esta função inicia a construção do gráfico e define o conjunto de dados (dados_dispersao) a ser utilizado.

  2. aes(): Dentro da função ggplot(), a função aes() (aesthetic) mapeia as variáveis estéticas, associando as variáveis do conjunto de dados (x e y) aos eixos do gráfico.

  3. geom_point(): Adiciona uma camada ao gráfico, representando os pontos de dispersão. O argumento color define a cor dos pontos, e size determina o tamanho dos pontos.

  4. labs(): Utilizada para adicionar rótulos aos eixos (x e y) e um título (title) ao gráfico.

Interpretação do Gráfico:

No exemplo, o eixo x representa a “Variável X”, o eixo y representa a “Variável Y”. Cada ponto no gráfico representa um par de valores dessas variáveis. A cor dos pontos é definida como azul, e o tamanho é configurado como 3.

Gráfico de Linhas

Vamos criar um gráfico de linhas simples utilizando o ggplot2. Neste exemplo, utilizaremos dados fictícios para representar a variação de uma variável ao longo do tempo. Após o exemplo, explicarei cada recurso do ggplot2 utilizado.

# Instalação e carregamento do pacote ggplot2 
#(caso ainda não esteja instalado)
# install.packages("ggplot2")
library(ggplot2)

# Criando dados de exemplo
dados_linhas <- 
  data.frame(tempo = 1:10,
             valores = c(3, 5, 8, 12, 9, 15, 18, 22, 20, 25))

# Criando o gráfico de linhas com ggplot2
ggplot(dados_linhas, aes(x = tempo, y = valores)) +
  geom_line(color = "red", size = 2) +
  labs(title = "Gráfico de Linhas com ggplot2",
       x = "Tempo",
       y = "Valores")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Explicação dos Recursos Utilizados:

  1. ggplot(): Inicia a construção do gráfico e define o conjunto de dados (dados_linhas) a ser utilizado.

  2. aes(): Mapeia as variáveis estéticas, associando as variáveis do conjunto de dados (tempo e valores) aos eixos do gráfico.

  3. geom_line(): Adiciona uma camada ao gráfico, representando as linhas. O argumento color define a cor das linhas, e size determina a espessura das linhas.

  4. labs(): Utilizada para adicionar rótulos aos eixos (x e y) e um título (title) ao gráfico.

Interpretação do Gráfico:

No exemplo, o eixo x representa o “Tempo”, e o eixo y representa os “Valores”. Cada ponto no gráfico é conectado por uma linha, mostrando a variação dos valores ao longo do tempo. A cor das linhas é definida como vermelha, e a espessura é configurada como 2.

Gráfico de Barras/Colunas

Vamos criar um gráfico de barras simples utilizando o ggplot2. Neste exemplo, usaremos dados fictícios para representar a quantidade de itens em diferentes categorias. Após o exemplo, explicarei cada recurso do ggplot2 utilizado.

# Instalação e carregamento do pacote ggplot2 
#(caso ainda não esteja instalado)
# install.packages("ggplot2")
library(ggplot2)

# Criando dados de exemplo
dados_barras <- data.frame(categorias = c("A", "B", "C", "D", "E"),
                            quantidades = c(15, 22, 30, 18, 25))

# Criando o gráfico de barras com ggplot2
ggplot(dados_barras, aes(x = categorias, y = quantidades, 
                         fill = categorias)) +
  geom_bar(stat = "identity", color = "black") +
  labs(title = "Gráfico de Barras com ggplot2",
       x = "Categorias",
       y = "Quantidades") +
  theme_minimal()

Explicação dos Recursos Utilizados:

  1. ggplot(): Inicia a construção do gráfico e define o conjunto de dados (dados_barras) a ser utilizado.

  2. aes(): Mapeia as variáveis estéticas, associando as variáveis do conjunto de dados (categorias e quantidades) aos eixos do gráfico. O argumento fill define as cores das barras com base nas categorias.

  3. geom_bar(): Adiciona uma camada ao gráfico, representando as barras. O argumento stat = "identity" indica que as alturas das barras são fornecidas diretamente no conjunto de dados. O argumento color define a cor das bordas das barras.

  4. labs(): Utilizada para adicionar rótulos aos eixos (x e y) e um título (title) ao gráfico.

  5. theme_minimal(): Aplica um tema minimalista ao gráfico para melhorar a estética.

Interpretação do Gráfico:

No exemplo, o eixo x representa as “Categorias”, e o eixo y representa as “Quantidades”. Cada barra no gráfico representa a quantidade de itens em cada categoria. As cores das barras são definidas com base nas categorias. O gráfico de barras fornece uma representação visual clara das quantidades em diferentes categorias.

Gráfico de Histograma

Vamos criar um gráfico de histograma simples utilizando o ggplot2. Neste exemplo, utilizaremos dados fictícios para representar a distribuição de uma variável contínua. Após o exemplo, explicarei cada recurso do ggplot2 utilizado.

# Instalação e carregamento do pacote ggplot2 
#(caso ainda não esteja instalado)
# install.packages("ggplot2")
library(ggplot2)

# Criando dados de exemplo
dados_histograma <- data.frame(
  valores = c(18, 22, 25, 28, 30, 35, 38, 40, 42, 45))

# Criando o gráfico de histograma com ggplot2
ggplot(dados_histograma, aes(x = valores, 
                             fill = cut(valores, 
                                        breaks = seq(15, 50, 
                                                     by = 10)))) +
  geom_histogram(binwidth = 5, color = "black", 
                 position = "identity") +
  labs(title = "Gráfico de Histograma com ggplot2",
       x = "Valores",
       y = "Frequência") +
  scale_fill_brewer(palette = "Blues") +
  theme_minimal()

Explicação dos Recursos Utilizados:

  1. ggplot(): Inicia a construção do gráfico e define o conjunto de dados (dados_histograma) a ser utilizado.

  2. aes(): Mapeia as variáveis estéticas, associando as variáveis do conjunto de dados (valores) ao eixo x do gráfico. O argumento fill define a cor das barras com base nas faixas de valores (cut).

  3. geom_histogram(): Adiciona uma camada ao gráfico, representando o histograma. O argumento binwidth define a largura dos intervalos, color determina a cor das bordas das barras, e position = "identity" mantém as barras adjacentes.

  4. labs(): Utilizada para adicionar rótulos aos eixos (x e y) e um título (title) ao gráfico.

  5. scale_fill_brewer(): Define a paleta de cores utilizada para preencher as barras do histograma. Neste exemplo, utilizamos a paleta de cores “Blues”.

  6. theme_minimal(): Aplica um tema minimalista ao gráfico para melhorar a estética.

Interpretação do Gráfico:

No exemplo, o eixo x representa os “Valores”, e o eixo y representa a “Frequência”. Cada barra no gráfico representa a frequência dos valores em intervalos específicos. A paleta de cores utilizada ajuda a destacar as diferentes faixas de valores no histograma.

Gráfico de Setores

Vamos criar um gráfico de setores simples utilizando o ggplot2. Neste exemplo, usaremos dados fictícios para representar proporções em diferentes categorias. Após o exemplo, explicarei cada recurso do ggplot2 utilizado.

# Instalação e carregamento do pacote ggplot2 
#(caso ainda não esteja instalado)
# install.packages("ggplot2")
library(ggplot2)

# Criando dados de exemplo
dados_setores <- 
  data.frame(categorias = c("A", "B", "C", "D", "E"),
                             proporcoes = 
               c(0.3, 0.2, 0.15, 0.1, 0.25))

# Criando o gráfico de setores com ggplot2
ggplot(dados_setores, aes(x = "",
                          y = proporcoes, fill = categorias)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  labs(title = "Gráfico de Setores com ggplot2") +
  theme_minimal() +
  theme(axis.text = element_blank(), axis.title = element_blank())

Explicação dos Recursos Utilizados:

  1. ggplot(): Inicia a construção do gráfico e define o conjunto de dados (dados_setores) a ser utilizado.

  2. aes(): Mapeia as variáveis estéticas, associando as variáveis do conjunto de dados (proporcoes e categorias) aos eixos do gráfico. O eixo x é definido como vazio ("") para criar um gráfico de setores.

  3. geom_bar(): Adiciona uma camada ao gráfico, representando os setores. O argumento stat = "identity" indica que as alturas das barras são fornecidas diretamente no conjunto de dados. O argumento width = 1 define a largura das barras como 1.

  4. coord_polar(): Converte o gráfico em coordenadas polares para criar um gráfico de setores.

  5. labs(): Utilizada para adicionar um título (title) ao gráfico.

  6. theme_minimal(): Aplica um tema minimalista ao gráfico para melhorar a estética.

  7. theme(): Remove os textos dos eixos x e y para criar um gráfico de setores mais limpo.

Interpretação do Gráfico:

No exemplo, o gráfico de setores representa proporções em diferentes categorias. Cada setor representa a proporção da categoria em relação ao total. A utilização de coordenadas polares facilita a construção de um gráfico de setores visualmente atraente e informativo.

Gráfico de Caixa

Vamos criar um gráfico de caixa simples utilizando o ggplot2. Neste exemplo, usaremos dados fictícios para representar a distribuição estatística de dois grupos. Após o exemplo, explicarei cada recurso do ggplot2 utilizado.

# Instalação e carregamento do pacote ggplot2 
#(caso ainda não esteja instalado)
# install.packages("ggplot2")
library(ggplot2)

# Criando dados de exemplo
grupo1 <- c(20, 25, 30, 35, 40)
grupo2 <- c(15, 18, 22, 27, 32)

# Criando o gráfico de caixa com ggplot2
dados_caixa <- data.frame(grupo = factor(rep(1:2, each = 5)),
                          valores = c(grupo1, grupo2))

ggplot(dados_caixa, aes(x = grupo, y = valores, fill = grupo)) +
  geom_boxplot(width = 0.5, outlier.shape = NA) +
  labs(title = "Gráfico de Caixa com ggplot2",
       x = "Grupo",
       y = "Valores") +
  scale_fill_brewer(palette = "Set2") +
  theme_minimal()

Explicação dos Recursos Utilizados:

  1. ggplot(): Inicia a construção do gráfico e define o conjunto de dados (dados_caixa) a ser utilizado.

  2. aes(): Mapeia as variáveis estéticas, associando as variáveis do conjunto de dados (grupo e valores) aos eixos do gráfico. O argumento fill define a cor das caixas com base nos grupos.

  3. geom_boxplot(): Adiciona uma camada ao gráfico, representando os boxplots. O argumento width define a largura das caixas, e outlier.shape = NA remove a representação gráfica de outliers.

  4. labs(): Utilizada para adicionar rótulos aos eixos (x e y) e um título (title) ao gráfico.

  5. scale_fill_brewer(): Define a paleta de cores utilizada para preencher as caixas dos boxplots. Neste exemplo, utilizamos a paleta de cores “Set2”.

  6. theme_minimal(): Aplica um tema minimalista ao gráfico para melhorar a estética.

Interpretação do Gráfico:

No exemplo, o gráfico de caixa representa a distribuição estatística dos valores em dois grupos distintos. Cada caixa do boxplot indica a mediana, quartis e possíveis outliers nos dados. As cores diferenciadas facilitam a comparação entre os grupos.

Aqui concluímos o nosso capítulo. Em seguida, exploraremos conceitos avançados de matemática e estatística, baseando-nos no R para alcançar o êxito em nossa jornada. O R será a nossa principal e fundamental ferramenta para lidar com o grande volume de dados e cálculos necessários neste curso.

Exercícios

Operações Matemáticas:

  1. Calcule a soma de dois números.

  2. Subtraia um número de outro.

  3. Multiplique dois números.

  4. Divida um número por outro.

Declaração de Variáveis:

  1. Declare uma variável chamada idade e atribua um valor.

  2. Declare uma variável chamada nome e atribua um nome a ela.

  3. Declare uma variável chamada altura e atribua um valor de ponto flutuante a ela.

Declaração de Vetores:

  1. Crie um vetor numérico com cinco elementos.

  2. Crie um vetor de caracteres com nomes de cores.

  3. Crie um vetor lógico indicando se os números em outro vetor são pares.

Comandos de Impressão:

  1. Use o print() para exibir uma mensagem simples.

  2. Use o print() para mostrar o resultado de uma operação matemática.

  3. Utilize o sprintf() para formatar uma mensagem com uma variável numérica.

  4. Utilize o glue() para criar uma mensagem com variáveis de idade e nome.

Criação de Tabelas e Data Frames:

  1. Crie uma matriz com três colunas e quatro linhas.

  2. Converta a matriz em uma tabela usando as.table().

  3. Crie um data frame com informações de três alunos (nome, idade, nota).

  4. Adicione uma nova coluna ao data frame representando o sexo dos alunos.

Operações Matemáticas e Vetores:

  1. Crie dois vetores numéricos e some-os elemento por elemento.

  2. Multiplique um vetor por um número escalar.

  3. Crie um vetor lógico com base em uma condição em outro vetor.

Comandos de Impressão e Formatação:

  1. Utilize o sprintf() para criar uma mensagem formatada com variáveis numéricas e de texto.

  2. Use o glue() para criar uma mensagem que inclua variáveis de um vetor e uma operação matemática.

Manipulação de Data Frames:

  1. Exiba as primeiras três linhas do data frame.

  2. Calcule a média da idade dos alunos no data frame.

  3. Filtrar os alunos que obtiveram uma nota superior a 80.

  4. Adicione uma nova linha ao data frame representando um novo aluno.

Combinando Operações e Estruturas de Dados:

  1. Crie um vetor com números e calcule a média usando uma função do R.

  2. Declare uma variável chamada mensagem_final e utilize sprintf() ou glue() para criar uma mensagem final que inclua informações dos vetores e data frame.

  3. Crie uma tabela ou gráfico simples para visualizar algum aspecto dos dados em seu data frame.

Funções no R:

  1. Crie uma função que recebe dois números e retorna a soma.

  2. Crie uma função que recebe uma lista de números e retorna a média.

  3. Implemente uma função que recebe uma string e retorna o número de caracteres.

  4. Desenvolva uma função que verifica se um número é par ou ímpar.

  5. Crie uma função que recebe um vetor de palavras e retorna o número de palavras.

  6. Implemente uma função que calcula o fatorial de um número.

  7. Crie uma função que recebe um vetor e retorna a soma dos elementos pares.

  8. Desenvolva uma função que recebe uma matriz e retorna a média de cada coluna.

Laços no R:

39 Use um loop for para imprimir os números de 1 a 10.

  1. Utilize um loop while para imprimir os quadrados dos números de 1 a 5.

  2. Crie um loop que itera sobre um vetor e imprime cada elemento.

  3. Implemente um loop que calcula a soma dos números de 1 a 100.

  4. Use um loop para imprimir os números pares de 2 a 20.

  5. Crie um loop que preenche um vetor com os quadrados dos números de 1 a 5.

  6. Utilize um loop para inverter a ordem de um vetor.

Estruturas Condicionais:

  1. Crie uma estrutura if() else() que verifica se um número é positivo, negativo ou zero.

  2. Implemente uma estrutura condicional para verificar se uma pessoa é maior ou menor de idade.

  3. Desenvolva uma função que utiliza if() else() para retornar o maior de dois números.

  4. Utilize uma estrutura condicional para classificar a nota de um aluno em A, B, C, D ou F.

  5. Crie uma estrutura if() else() para verificar se um número é divisível por 3 e/ou por 5.

Manipulação de DataFrames:

  1. Crie um DataFrame com informações de pessoas (nome, idade, altura).

  2. Utilize uma função para acessar apenas a coluna de nomes do DataFrame.

  3. Implemente uma função que filtra as pessoas com idade superior a 30 anos no DataFrame.

  4. Desenvolva uma função que adiciona uma coluna ao DataFrame indicando se a pessoa é alta ou baixa com base na altura.

  5. Use uma estrutura condicional para criar uma nova coluna indicando se a pessoa é adulta ou não no DataFrame.

  6. Crie uma função que retorna a média da idade das pessoas no DataFrame.

  7. Utilize uma função para ordenar o DataFrame pelo nome em ordem alfabética.

  8. Implemente uma função que retorna as pessoas com altura acima da média no DataFrame.

Combinação de Conceitos:

  1. Crie uma função que recebe um número e retorna “Fizz” se divisível por 3, “Buzz” se divisível por 5 e “FizzBuzz” se divisível por ambos. Caso contrário, retorna o próprio número.

  2. Desenvolva um loop que itera sobre os elementos de um vetor e utiliza uma estrutura condicional para chamar uma função diferente para cada elemento (por exemplo, soma, média, verificar se é par, etc.).

Construção de Gráficos com ggplot2

OBS: No final temos dicas para a solução dos exercícios

  1. Gráfico de Dispersão com Tendência Linear:
  • Crie um conjunto de dados fictícios com duas variáveis (X e Y).
  • Construa um gráfico de dispersão usando ggplot2, adicionando uma linha de tendência linear.
  1. Gráfico de Linhas com Múltiplas Séries Temporais:
  • Crie um conjunto de dados fictícios com informações de múltiplas séries temporais.
  • Construa um gráfico de linhas usando ggplot2 para representar as séries temporais.
  1. Gráfico de Barras Empilhadas:
  • Crie um conjunto de dados fictícios com categorias e subcategorias.
  • Construa um gráfico de barras empilhadas usando ggplot2.
  1. Histograma com Diferentes Intervalos:
  • Crie um conjunto de dados fictícios com uma variável contínua.
  • Construa um gráfico de histograma usando ggplot2, experimentando com diferentes larguras de intervalo.
  1. Gráfico de Setores 3D:
  • Crie um conjunto de dados fictícios com proporções para diferentes categorias.
  • Tente criar um gráfico de setores 3D usando ggplot2 ou qualquer outra biblioteca R.
  1. Boxplot com Dados Extremos:
  • Crie um conjunto de dados fictícios com dois grupos, incluindo valores extremos.
  • Construa um gráfico de caixa usando ggplot2, destacando os valores extremos.
  1. Gráfico de Área:
  • Crie um conjunto de dados fictícios que representem a evolução de uma variável ao longo do tempo.
  • Construa um gráfico de área usando ggplot2 para visualizar a mudança na variável ao longo do tempo.
  1. Gráfico de Violino:
  • Crie um conjunto de dados fictícios com duas categorias e uma variável contínua.
  • Construa um gráfico de violino usando ggplot2 para visualizar a distribuição da variável em cada categoria.
  1. Gráfico de Radar (Radial):
  • Crie um conjunto de dados fictícios com diferentes variáveis para um conjunto de categorias.
  • Construa um gráfico de radar (ou radial) usando ggplot2 para comparar as categorias nas diferentes variáveis.
  1. Gráfico Interativo com Plotly:
  • Utilizando o pacote plotly, crie um gráfico interativo de sua escolha (dispersão, barras, linhas, etc.) com dados fictícios.

Dicas para solução dos Exercícios 61 a 70

  1. Gráfico de Dispersão com Tendência Linear:
  • Use a função lm() para calcular a linha de tendência linear.
  • Adicione a linha de tendência linear usando geom_smooth().
  1. Gráfico de Linhas com Múltiplas Séries Temporais:
  • Utilize um conjunto de dados com colunas de datas e valores para cada série temporal.
  • Use geom_line() para representar cada série temporal.
  1. Gráfico de Barras Empilhadas:
  • Organize os dados de forma que cada barra tenha subcategorias empilhadas.
  • Utilize geom_bar() e fill para criar barras empilhadas.
  1. Histograma com Diferentes Intervalos:
  • Experimente diferentes valores para o argumento binwidth em geom_histogram().
  • Observe como a escolha do intervalo afeta a visualização da distribuição.
  1. Gráfico de Setores 3D:
  • Infelizmente, o ggplot2 não possui suporte nativo para gráficos de setores 3D.
  • Considere explorar outras bibliotecas R, como plotly ou rgl, para gráficos 3D.
  1. Boxplot com Dados Extremos:
  • Crie alguns valores extremos em seu conjunto de dados.
  • Utilize geom_boxplot() e talvez ajuste a escala ou destaque os outliers.
  1. Gráfico de Área:
  • Organize os dados de forma que tenha uma coluna de datas e outra com os valores para cada série temporal.
  • Utilize geom_area() para representar a evolução ao longo do tempo.
  1. Gráfico de Violino:
  • Estruture os dados de modo que tenha uma coluna de categorias e outra com a variável contínua.
  • Utilize geom_violin() para visualizar a distribuição da variável em cada categoria.
  1. Gráfico de Radar (Radial):
  • Considere converter os dados para um formato que possa ser utilizado em um gráfico de radar.
  • Utilize geom_polygon() para criar o gráfico de radar.
  1. Gráfico Interativo com Plotly:
  • Instale e carregue o pacote plotly.
  • Utilize a função plot_ly() para criar gráficos interativos. Explore diferentes tipos de gráficos e personalizações.