a <- 5
b <- 5.7Introdução ao R e RStudio
0.1 Objetivos da Aula
- Entender o que é o R e suas aplicações.
- Aprender a instalar e configurar o R e o RStudio.
- Conhecer os tipos de dados e estruturas básicas em R.
- Realizar operações básicas com dados.
- Manipular dados utilizando funções do R.
- Conhecer noções básicas de programação em R.
1 1. O que é o R
R é uma linguagem de programação e um ambiente de desenvolvimento para computação estatística e gráficos. É amplamente utilizada por estatísticos, cientistas de dados e analistas para desenvolver software estatístico e realizar análises de dados.
1.1 Popularidade do R
- Comunidade ativa: A comunidade do R é grande e ativa, contribuindo com pacotes e suporte.
- Gratuito e Open Source: R é gratuito para usar e distribuir, e seu código-fonte está disponível para que todos possam ver e modificar.
- Flexibilidade: Pode ser usado para análise de dados simples e complexa, desde estatísticas descritivas até modelos de aprendizado de máquina.
2 2. Instalação e Configuração
2.1 Instalando o R
Para instalar o R, siga as instruções no site oficial: CRAN R Project.
2.2 Instalando o RStudio
RStudio é uma IDE (Integrated Development Environment) que facilita o uso do R. Faça o download em: RStudio Download.
2.3 Componentes do RStudio
- Console: Onde você pode executar comandos diretamente.
- Editor de Scripts: Onde você escreve e salva seu código.
- Ambiente de Trabalho: Onde você pode ver os objetos que você criou.
- Painel de Plotagem: Onde seus gráficos são exibidos.
3 3. Tipos de Dados e Estruturas Básicas
3.1 Tipos de Dados
3.1.1 Números
3.1.2 Caracteres
nome <- "João"
sobrenome <- "Silva"3.1.3 Lógicos
verdadeiro <- TRUE
falso <- FALSE3.1.4 Fatores
# Criando um fator
genero <- factor(c("masculino", "feminino", "feminino", "masculino"))
levels(genero)[1] "feminino" "masculino"
# Mudando os níveis de um fator
levels(genero) <- c("F", "M")3.2 Estruturas de Dados
3.2.1 Vetores
Um vetor em R é uma estrutura de dados básica que pode armazenar uma coleção de elementos do mesmo tipo. Os tipos de dados mais comuns que podem ser armazenados em vetores são números, caracteres e valores lógicos (TRUE/FALSE).
# Criando um vetor
numeros <- c(1, 2, 3, 4, 5)
caracteres <- c("a", "b", "c")
logicos <- c(TRUE, FALSE, TRUE)3.2.2 Matrizes
Uma matriz em R é uma estrutura de dados bidimensional que pode armazenar elementos do mesmo tipo, dispostos em linhas e colunas. As matrizes são úteis para representar tabelas de dados onde todas as entradas são do mesmo tipo, como números.
# Criando uma matriz
matriz <- matrix(1:9, nrow = 3, ncol = 3)
# Acessando o elemento na linha 2, coluna 3
matriz[2, 3][1] 8
# Acessando toda a linha 1
matriz[1, ][1] 1 4 7
# Acessando toda a coluna 2
matriz[, 2][1] 4 5 6
3.2.3 Listas
Em R, uma lista é uma estrutura de dados que pode armazenar elementos de diferentes tipos e tamanhos. Isso inclui números, caracteres, vetores, matrizes, outros data frames e até outras listas. As listas são muito flexíveis e são frequentemente usadas para armazenar resultados de operações complexas e dados heterogêneos.
# Criando uma lista com diferentes tipos de dados
minha_lista <- list(
nome = "João",
idade = 25,
altura = 1.75,
notas = c(90, 85, 88),
dados_extras = list(cidade = "São Paulo", país = "Brasil")
)
minha_lista$nome
[1] "João"
$idade
[1] 25
$altura
[1] 1.75
$notas
[1] 90 85 88
$dados_extras
$dados_extras$cidade
[1] "São Paulo"
$dados_extras$país
[1] "Brasil"
# Acessando o primeiro elemento da lista
minha_lista[[1]][1] "João"
# Acessando o elemento 'nome'
minha_lista$nome[1] "João"
# Acessando o elemento 'notas'
minha_lista$notas[1] 90 85 88
# Acessando 'cidade' dentro de 'dados_extras'
minha_lista$dados_extras$cidade[1] "São Paulo"
# Modificando o elemento 'idade'
minha_lista$idade <- 26
# Adicionando um novo elemento à lista
minha_lista$profissao <- "Engenheiro"
minha_lista$nome
[1] "João"
$idade
[1] 26
$altura
[1] 1.75
$notas
[1] 90 85 88
$dados_extras
$dados_extras$cidade
[1] "São Paulo"
$dados_extras$país
[1] "Brasil"
$profissao
[1] "Engenheiro"
# Obtendo o número de elementos na lista
length(minha_lista)[1] 6
# Obtendo os nomes dos elementos na lista
names(minha_lista)[1] "nome" "idade" "altura" "notas" "dados_extras"
[6] "profissao"
# Exibindo a estrutura da lista
str(minha_lista)List of 6
$ nome : chr "João"
$ idade : num 26
$ altura : num 1.75
$ notas : num [1:3] 90 85 88
$ dados_extras:List of 2
..$ cidade: chr "São Paulo"
..$ país : chr "Brasil"
$ profissao : chr "Engenheiro"
3.2.4 Data Frames
Em R, um data frame é uma estrutura de dados bidimensional que pode armazenar dados de diferentes tipos (números, caracteres, fatores, etc.) em colunas. Cada coluna de um data frame representa uma variável e cada linha representa uma observação. Data frames são amplamente utilizados para armazenar e manipular conjuntos de dados tabulares em R.
# Criando um data frame
dados <- data.frame(
nome = c("Ana", "Bruno", "Carlos"),
idade = c(23, 35, 28),
altura = c(1.68, 1.75, 1.80)
)
# Acessando a coluna 'nome'
dados$nome[1] "Ana" "Bruno" "Carlos"
# Acessando o elemento na primeira linha e segunda coluna
dados[1, 2][1] 23
# Acessando a primeira linha inteira
dados[1, ] nome idade altura
1 Ana 23 1.68
# Acessando a segunda coluna inteira
dados[, 2][1] 23 35 28
# Acessando a coluna 'idade' usando a notação de colchetes
dados[,"idade"][1] 23 35 28
# Acessando múltiplas colunas por nome
dados[, c("nome", "altura")] nome altura
1 Ana 1.68
2 Bruno 1.75
3 Carlos 1.80
# Modificando o valor de um elemento específico
dados[1, 2] <- 24
# Adicionando uma nova coluna
dados$peso <- c(65, 70, 80)
dados nome idade altura peso
1 Ana 24 1.68 65
2 Bruno 35 1.75 70
3 Carlos 28 1.80 80
3.2.4.1 Funções Úteis para Data Frames:
str(): Exibe a estrutura interna de um data frame.summary(): Fornece um resumo estatístico das colunas do data frame.head(): Exibe as primeiras linhas do data frame.tail(): Exibe as últimas linhas do data frame.dim(): Retorna as dimensões do data frame (número de linhas e colunas).nrow(): Retorna o número de linhas.ncol(): Retorna o número de colunas.names(): Retorna ou define os nomes das colunas.
# Exibindo a estrutura do data frame
str(dados)'data.frame': 3 obs. of 4 variables:
$ nome : chr "Ana" "Bruno" "Carlos"
$ idade : num 24 35 28
$ altura: num 1.68 1.75 1.8
$ peso : num 65 70 80
# Resumo estatístico dos dados
summary(dados) nome idade altura peso
Length:3 Min. :24.0 Min. :1.680 Min. :65.00
Class :character 1st Qu.:26.0 1st Qu.:1.715 1st Qu.:67.50
Mode :character Median :28.0 Median :1.750 Median :70.00
Mean :29.0 Mean :1.743 Mean :71.67
3rd Qu.:31.5 3rd Qu.:1.775 3rd Qu.:75.00
Max. :35.0 Max. :1.800 Max. :80.00
# Exibindo as primeiras linhas do data frame
head(dados) nome idade altura peso
1 Ana 24 1.68 65
2 Bruno 35 1.75 70
3 Carlos 28 1.80 80
# Exibindo as últimas linhas do data frame
tail(dados) nome idade altura peso
1 Ana 24 1.68 65
2 Bruno 35 1.75 70
3 Carlos 28 1.80 80
# Obtendo as dimensões do data frame
dim(dados)[1] 3 4
# Número de linhas
nrow(dados)[1] 3
# Número de colunas
ncol(dados)[1] 4
# Nomes das colunas
names(dados)[1] "nome" "idade" "altura" "peso"
4 4. Operações Básicas
4.1 Operações Aritméticas
2 + 2[1] 4
5 - 3[1] 2
4 * 6[1] 24
8 / 2[1] 4
4.2 Operações Lógicas
5 > 3[1] TRUE
4 == 4[1] TRUE
TRUE & FALSE[1] FALSE
TRUE | FALSE[1] TRUE
4.3 Funções Básicas
print("Hello, R!")[1] "Hello, R!"
length(numeros)[1] 5
sum(numeros)[1] 15
mean(numeros)[1] 3
5 5. Manipulação de Dados
5.1 Subset
# Selecionando um subconjunto de dados
subset(dados, idade > 25) nome idade altura peso
2 Bruno 35 1.75 70
3 Carlos 28 1.80 80
# Salvando em um novo conjunto de dados
dados2 <- subset(dados, idade > 25)5.2 Filter, Select, Mutate, Arrange (usando dplyr)
library(dplyr)
# Filtrando dados
dados_filtrados <- filter(dados, idade > 25)
# Selecionando colunas
dados_selecionados <- select(dados, nome, altura)
# Criando nova coluna
dados_mutados <- mutate(dados, altura_cm = altura * 100)
# Ordenando dados
dados_ordenados <- arrange(dados, desc(idade))
# Encadeando as operações com %>%
dados_final <- dados %>%
filter(idade > 25) %>%
select(idade, altura) %>%
mutate(altura_cm = altura * 100) %>%
arrange(desc(idade))
dados_final idade altura altura_cm
1 35 1.75 175
2 28 1.80 180
6 6. Programação em R
6.1 Estruturas de Controle
6.1.1 If-Else
x <- 5
if (x > 3) {
print("x é maior que 3")
} else {
print("x não é maior que 3")
}[1] "x é maior que 3"
6.1.2 For Loop
O loop for é usado para iterar sobre uma sequência de valores. Aqui estão alguns exemplos mais elaborados:
# Exemplo: Imprimindo números de 1 a 10
for (i in 1:10) {
print(i)
}[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
# Exemplo: Calculando a soma de um vetor
numeros <- c(1, 2, 3, 4, 5)
soma <- 0
for (num in numeros) {
soma <- soma + num
}
soma[1] 15
# Exemplo: Iterando sobre um data frame
dados <- data.frame(
nome = c("Ana", "Bruno", "Carlos"),
idade = c(23, 35, 28),
altura = c(1.68, 1.75, 1.80)
)
for (i in 1:nrow(dados)) {
cat("Nome:", dados$nome[i], "- Idade:", dados$idade[i], "- Altura:", dados$altura[i], "\n")
}Nome: Ana - Idade: 23 - Altura: 1.68
Nome: Bruno - Idade: 35 - Altura: 1.75
Nome: Carlos - Idade: 28 - Altura: 1.8
6.1.3 While Loop
O loop while continua a execução enquanto a condição especificada for verdadeira.
# Exemplo: Contando até 10
count <- 1
while (count <= 5) {
print(count)
count <- count + 1
}[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
# Exemplo: Somando números até a soma atingir um valor limite
limite <- 20
soma <- 0
numero <- 1
while (soma < limite) {
soma <- soma + numero
numero <- numero + 1
}
soma[1] 21
6.1.4 Apply
A função apply() em R é uma ferramenta poderosa para aplicar uma função a margens específicas (linhas ou colunas) de uma matriz ou array. Ela é frequentemente usada para evitar loops explícitos, tornando o código mais conciso e, em muitos casos, mais eficiente.
# Usando apply em uma matriz
matriz <- matrix(1:9, nrow=3)
apply(matriz, 1, sum)[1] 12 15 18
# X: A matriz ou array a ser usada.
# MARGIN: Um inteiro que indica se a função deve ser aplicada a linhas (1), colunas (2), ou ambos (c(1, 2)).
# FUN: A função a ser aplicada.
# Aplicando a função mean para calcular a média de cada coluna
media_colunas <- apply(matriz, 2, mean)
media_colunas[1] 2 5 8
6.1.4.1 Comparação com Funções lapply() e sapply()
lapply(): Aplica uma função a cada elemento de uma lista e retorna uma lista.sapply(): Aplica uma função a cada elemento de uma lista e simplifica o resultado, retornando um vetor ou matriz quando possível.
# Exemplo: Usando lapply() com Data Frames
# Criando um data frame de exemplo
df <- data.frame(
A = 1:5,
B = 6:10,
C = 11:15
)
# Aplicando a função sum a cada coluna do data frame usando lapply()
resultados_lapply <- lapply(df, sum)
resultados_lapply$A
[1] 15
$B
[1] 40
$C
[1] 65
# Exemplo: Usando sapply() com Data Frames
# Aplicando a função mean a cada coluna do data frame usando sapply()
resultados_sapply <- sapply(df, mean)
resultados_sapply A B C
3 8 13
7 Conclusão
Nesta aula, cobrimos os conceitos básicos do R, incluindo a instalação, tipos de dados, estruturas de dados, operações básicas, manipulação de dados e introdução à programação em R. Em aulas futuras, aprofundaremos nosso conhecimento em análise de dados e visualização.