R E O
TIDYVERSE
PROF. GUILHERME AUGUSTO VELOSO
PRIMEIRO SEMESTRE DE 2023
Matriz é um objeto r × s, isto é, possui r linhas e
s colunas, na qual todos os elementos pertencentes ao objeto
possuem uma mesma natureza. O código seguinte exemplifica como
criar uma matriz no R:
# Criando um matriz com 3 linhas (nrow = 3) e 3 colunas (ncol = 3), sendo preenchida por coluna
A = matrix(data = c(1,3,4,2,3,4,6,3,9),
nrow = 3,
ncol= 3,
byrow=FALSE)
A
## [,1] [,2] [,3]
## [1,] 1 2 6
## [2,] 3 3 3
## [3,] 4 4 9
#Criando um matriz com 3 linhas (nrow = 3) e 3 colunas (ncol = 3), sendo alimentada por linha (byrow = TRUE)
B = matrix(data = c(1,3,4,2,3,4,6,3,9),
nrow = 3,
ncol= 3,
byrow = TRUE)
B
## [,1] [,2] [,3]
## [1,] 1 3 4
## [2,] 2 3 4
## [3,] 6 3 9
Operações com matrizes:
#Somando matrizes
A + B
## [,1] [,2] [,3]
## [1,] 2 5 10
## [2,] 5 6 7
## [3,] 10 7 18
#Realizando uma operação entre um escalar e uma matriz
3 * A
## [,1] [,2] [,3]
## [1,] 3 6 18
## [2,] 9 9 9
## [3,] 12 12 27
#Invertendo uma matriz
solve(A)
## [,1] [,2] [,3]
## [1,] -1 -0.4000000 0.8
## [2,] 1 1.0000000 -1.0
## [3,] 0 -0.2666667 0.2
## Acessando elementos de uma matriz
# Segunda coluna
A[,2]
## [1] 2 3 4
# Primeira linha
A[1,]
## [1] 1 2 6
# Elemento da primeira linha e segunda coluna
A[1,2]
## [1] 2
## Empilhando matrizes
# Verticalmente
rbind(A,B)
## [,1] [,2] [,3]
## [1,] 1 2 6
## [2,] 3 3 3
## [3,] 4 4 9
## [4,] 1 3 4
## [5,] 2 3 4
## [6,] 6 3 9
# Horizontalmente
cbind(A,B)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 1 2 6 1 3 4
## [2,] 3 3 3 2 3 4
## [3,] 4 4 9 6 3 9
Faça as operações A+B e A-B
A função t() calcula a transposta de uma matriz.
Calcule a transposta da matriz A e B e guarde nos objetos
At e Bt
Esse operadores trabalham sempre com dois valores de retorno possíveis: TRUE (verdadeiro) ou FALSE (falso), também denotados pelas letras maiúsculas T e F, respectivamente.
RTambém conhecidos como operadores relacionais, permitem estabelecer a relação entre dois valores de entrada, e retornar um valor lógico verdadeiro ou falso dependendo da relação.
Por exemplo, um operador de comparação pode comparar dois números e
dizer se eles são iguais ou não. Os operadores de comparação em
R são os seguintes:
Exemplos:
# Igualdade
5==7
## [1] FALSE
# Diferente
x = 8
x != 9
## [1] TRUE
# Desigualdades
x = 4
x > 3
## [1] TRUE
x < 2
## [1] FALSE
x >= 4
## [1] TRUE
x <= 1
## [1] FALSE
RTambém conhecidos como operadores booleanos, permitem trabalhar com múltiplas condições relacionais na mesma expressão, e retornam valores lógicos verdadeiro ou falso.
Os operadores lógicos mais utilizados em
R são:
&& : Operador “E”
|| : Operador “OU” inclusivo
x = 4
y = 8
## Operador "E"
(x > 3) && (y == 8)
## [1] TRUE
## Operador "OU"
(x > 5) || (y !=8)
## [1] FALSE
Existem valores reservados para representar dados faltantes, infinitos, e indefinições matemáticas.
NA (Not Available) significa dado
faltante/indisponível. O NA tem uma classe, ou
seja, podemos ter NA numeric, NA character
etc.# Número de casos de Covid em uma semana em Niteroi
COVID<-c(227,145,130,NA,234,111,50)
NaN (Not a Number) representa indefinições
matemáticas, como 0/0 e log(-1). Um NaN é um
NA, mas a recíproca não é verdadeira.# Indefinição matemática
log(-1)
## Warning in log(-1): NaNs produzidos
## [1] NaN
Inf (Infinito) é um número muito grande ou o
limite matemático, por exemplo, 1/0 e 10^310. Aceita sinal
negativo -Inf.# Infinito
10^310
## [1] Inf
is.na(),
is.nan() e is.infinite() para testar se um
objeto é um desses valores.# Checando NA no vetor COVID
is.na(COVID)
## [1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE
A primeira aparição da linguagem de programação R foi em 1993 e, apesar de, de lá para cá muita coisa ter sido desenvolvida e atualizada, é muito difícil fazer mudanças na base da linguagem sem quebrar os códigos já existentes. Por essa razão, as maiores inovações são realizadas na forma de pacotes.
Um pacote é um conjunto de funções que têm como objetivo resolver um problema específico. São eles que deixam o R poderoso, capaz de enfrentar qualquer tarefa de análise de dados. Assim, fique bastante à vontade para instalar e atualizar muitos e muitos pacotes ao longo da sua experiência com o R.
O legal é que qualquer pessoa pode fazer um novo pacote e disponibilizar para a comunidade, o que acelera bastante o desenvolvimento da ferramenta. Dificilmente você vai fazer uma análise apenas com as funções básicas do R e dificilmente não vai existir um pacote com as funções que você precisa.
Para instalar um pacote utilizamos o seguinte comando:
install.packages("nome-do-pacote")
Também é possível ir em Tools-
Install Packages e escreva um ou mais pacotes que deseja
instalar.
Para chamar um pacote para que sejam habilitadas as suas funções, utilizamos o comando:
library("nome-do-pacote")
A análise descritiva é parte fundamental numa sequência de processos que compreendem a “ciência dos dados”:
1- Os dados brutos são coletados de fontes públicas, como arquivos Excel, portais de dados abertos ou bases de dados internos da companhia.
2- Os dados são arrumados, para mitigar problemas de padronização de nomes, obtenção das variáveis de interesse e exclusão de casos que estão fora do escopo de análise, produzindo o que se define como base de dados analítica.
3- A base analítica é então transformada para produzir as tabelas e gráficos e, quando necessário, são utilizadas como insumo para o ajuste de modelos estatísticos.
4- Os resultados obtidos são comunicados através de uma série de ferramentas, como relatórios ou dashboards interativos.
O tidyverse é um pacote guarda-chuva
que consolida uma série de ferramentas que fazem parte do ciclo da
ciência de dados. Fazem parte do tidyverse os pacotes
ggplot2, dplyr, readr,
stringr, lubridate, entre muitos outros, como
é possível observar na Figura abaixo. Veremos as características
principais de alguns pacotes ao longo do curso.
Para carregar o pacote tidyverse, utilize o seguinte
comando:
# Carregando o tidyverse
library("tidyverse")
## Warning: package 'tidyverse' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.3
## Warning: package 'forcats' was built under R version 4.2.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.0 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.1 ✔ tibble 3.1.8
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors