Este capítulo, “Introdução ao R: Construindo Fundamentos em Programação e Visualização de Dados”, oferece uma jornada através dos principais aspectos da linguagem de programação R. A programação básica em R é abordada, incluindo operações matemáticas, declaração de variáveis, manipulação de vetores e criação de data frames. Você aprenderá 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 é explorada em detalhes, oferecendo uma compreensão da organização e extração de informações.
A visualização de dados com ggplot2 constitui uma parte do capítulo, Veremos como criar uma variedade de gráficos, incluindo dispersão, linhas, barras, histograma, setores e caixa.
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 para análise de dados.
O software R oferece uma variedade de ferramentas para realizar operações matemáticas básicas. Essa capacidade permite aos usuários manipular e analisar dados 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,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 Real (/): A operação de divisão, indicada
pelo operador “/”, permite dividir um número pelo outro. Se executarmos
14 / 4, o R retornará o quociente 3.5.
14/4
## [1] 3.5
Divisão Inteira (%/%): A operação de divisão
inteira, indicada pelo operador “%/%”, permite dividir um número pelo
outro porém retorna apenas o quociente inteiro da divisão. Se
executarmos 14 %/% 4, o R retornará o quociente
3.
14%/%4
## [1] 3
Resto da divisão (%%): A operação para encontrar o
resto da divisão, indicada pelo operador “%%”, permite o retorno apenas
na parte não inteira da divisão. Se executarmos 14%%4, o R
retornará o resto 2.
14%%4
## [1] 2
No universo da programação, a declaração de variáveis 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.
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 a escolha entre <- e
= geralmente depende da preferência pessoal do
programador.
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
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.
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
Uma vez criado um vetor, para acessar seus elementos utilizamos
[ ]. 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
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
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
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. Vale ressaltar que esta forma de executar é a mais comum
entre as demais linguagens de programação.
No R, a exibição de informações é uma parte 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.
print()O comando print() é uma função 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.
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. Veja 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.
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.
No contexto do R, a criação de tabelas é utilizada para organizar e visualizar dados de maneira estruturada.
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.
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.
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, sendo assim, acaba tornando-se o formato padrão
para análise com grande volume de dados:
# Criando um data frame
dados_df <- data.frame(ID = c(1, 2, 3),
Nome = c("Alice", "Bob", "Charlie"),
Idade = c(25, 30, 22),
Nota = c(65, 95, 80))
# Exibindo o data frame
print("Data Frame:")
## [1] "Data Frame:"
print(dados_df)
## ID Nome Idade Nota
## 1 1 Alice 25 65
## 2 2 Bob 30 95
## 3 3 Charlie 22 80
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.
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))
## ID Nome Idade Nota
## 1 1 Alice 25 65
## 2 2 Bob 30 95
## 3 3 Charlie 22 80
# 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.
## 65.0 72.5 80.0 80.0 87.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))
## ID Nome Idade Nota
## 2 2 Bob 30 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(ID = 4, 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)
## ID Nome Idade Nota Sexo
## 1 1 Alice 25 65 F
## 2 2 Bob 30 95 M
## 3 3 Charlie 22 80 M
## 4 4 Diana 28 88 F
A função rbind() é usada para adicionar uma nova linha
ao data frame.
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 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.
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.
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.
Criar nossas próprias funções no R é uma maneira de encapsular lógica específica para reutilização. Vejamos um exemplo simples:
# Criando uma função de saudação
saudacao <- function(nome) {
library(glue)
msg <- glue('Olá {nome}!, como você está?')
return(msg)
}
# Chamando a função
print(saudacao("Maria"))
## 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.
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.
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.
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.
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.
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().
if() else():A estrutura condicional if() else() é utilizada 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.
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.
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).
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.
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.
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.
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.
A visualização de dados é uma ferramenta 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:
Visualizar dados ajuda na identificação rápida de padrões e anomalias.
Tomada de Decisões Informada:
Comunicação Eficaz:
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.
O gráfico de dispersão é uma ferramenta muito utilizada 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.
# 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.
O gráfico de linhas é fundamental para representar a variação de uma variável ao longo do tempo ou de uma sequência ordenada. Ele é utilizado em diversas áreas, desde finanças até ciências naturais (séries temporais).
# 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.
O gráfico de barras é a formas mais comuns de representar dados categóricos. Ele é eficaz na comparação de quantidades entre diferentes categorias.
# 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.
O gráfico de histograma é 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.
# 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.
O gráfico de setores, também conhecido como gráfico de pizza, é uma forma de representar proporções em um todo. Ele destaca a participação de cada categoria em relação ao total.
# 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.
O gráfico de caixa, ou boxplot, é uma ferramenta utilizada 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.
# 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 com dois grupos. Os parâmetros col
definem as cores dos boxplots e names atribuem rótulos aos
grupos.
O pacote ggplot2 é uma ferramenta 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 para a construção de visualizações complexas de maneira intuitiva e elegante.
Principais Características do ggplot2:
Vamos criar um gráfico de dispersão utilizando o ggplot2. Neste exemplo, usaremos dados fictícios para representar a relação entre duas variáveis.
# 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:
ggplot(): Esta função inicia a
construção do gráfico e define o conjunto de dados
(dados_dispersao) a ser utilizado.
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.
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.
labs(): Utilizada para adicionar
rótulos aos eixos (x e y) e um título
(title) ao gráfico.
Vamos criar um gráfico de linhas simples utilizando o ggplot2.
# Instalação e carregamento do pacote 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:
ggplot(): Inicia a construção do
gráfico e define o conjunto de dados (dados_linhas) a ser
utilizado.
aes(): Mapeia as variáveis
estéticas, associando as variáveis do conjunto de dados
(tempo e valores) aos eixos do
gráfico.
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.
labs(): Utilizada para adicionar
rótulos aos eixos (x e y) e um título
(title) ao 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.
Vamos criar um gráfico de barras utilizando o ggplot2.
# 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:
ggplot(): Inicia a construção do
gráfico e define o conjunto de dados (dados_barras) a ser
utilizado.
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.
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.
labs(): Utilizada para adicionar
rótulos aos eixos (x e y) e um título
(title) ao gráfico.
theme_minimal(): Aplica um tema
minimalista ao gráfico para melhorar a estética.
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.
Vamos criar um gráfico de histograma utilizando o ggplot2.
# 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:
ggplot(): Inicia a construção do
gráfico e define o conjunto de dados (dados_histograma) a
ser utilizado.
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).
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.
labs(): Utilizada para adicionar
rótulos aos eixos (x e y) e um título
(title) ao gráfico.
scale_fill_brewer(): Define a
paleta de cores utilizada para preencher as barras do histograma. Neste
exemplo, utilizamos a paleta de cores “Blues”.
theme_minimal(): Aplica um tema
minimalista ao gráfico para melhorar a estética.
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.
Vamos criar um gráfico de setores utilizando o ggplot2.
# 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:
ggplot(): Inicia a construção do
gráfico e define o conjunto de dados (dados_setores) a ser
utilizado.
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.
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.
coord_polar(): Converte o gráfico
em coordenadas polares para criar um gráfico de setores.
labs(): Utilizada para adicionar um
título (title) ao gráfico.
theme_minimal(): Aplica um tema
minimalista ao gráfico para melhorar a estética.
theme(): Remove os textos dos eixos
x e y para criar um gráfico de setores mais limpo.
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.
Vamos criar um gráfico de caixa utilizando o ggplot2.
# 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:
ggplot(): Inicia a construção do
gráfico e define o conjunto de dados (dados_caixa) a ser
utilizado.
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.
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.
labs(): Utilizada para adicionar
rótulos aos eixos (x e y) e um título
(title) ao gráfico.
scale_fill_brewer(): Define a
paleta de cores utilizada para preencher as caixas dos boxplots. Neste
exemplo, utilizamos a paleta de cores “Set2”.
theme_minimal(): Aplica um tema
minimalista ao gráfico para melhorar a estética.
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.
Assim, querendo aprofundar seus estudos, procure as demais sequências deste material, do qual citamos Frequência e Medidas, Probabilidae, Teste Estatísticos e Correlação e Regressão