Quando a gente vai trabalhar pela primeira vez com um novo pacote, o primeiro é fazer a instalação do pocote com o comando install.pachages(“NOME DO PACOTE”). SEMPRE chamar os pacotes que vamos utilizar com o comando library(NOME DO PACOTE). Utilizar o # pra fazer anotações ou comentarios. Sempre fazer comentarios para dar contexto ao trabalho e não esquecer detales (em futuras visitas ao seu script). Quando carregamos um banco de dados salvo em nosso computador, temos que colocar o caminho exato do diretorio onde fica salvo o banco de dados. Uma alternativa é utilizar a aba “Import Dataset”, localizada na janela chamada “Environment”. Ao clickar nela, lembrar de clickar na opção correspondente para o tipo de dados (o formato do seus dados que pode ser, por exemplo, csv, excell, etc.). Para o formato de dados csv a opção é “From text (readr)”. Ao accessar a opção desejada, o R vai gerar uma nova janela onde vocês podem selecionar nos seus diretorios o arquivo específico onde seu banco de dados foi salvo. Ao selecionar o arquivo desejado, na parte de embaixo a direita, o R fornece o código necessario pra fazer a importação dos dados (“Code Preview”). Quando uma linha ou um bloco de código não rodar, tente não bater no computador, dê uma respirada, contar até 10, beba uma cerveja (se desear), e ler a menssagem fornecido pelo R e tentar resolver o problema. Pode copiar e colar a menssagem di erro no ChatGpt (ou na ferramenta de inteligência artificial da sua preferenza) ou no google e recebir orientações (pode-me procurar também, eu demorarei mais em responder do que as outras opções, mas responderei). Agora sim!, a difrutar e curtir no R galera, boa viagem!
O que é o R?:
Uma linguagem estatística e de programação. Código aberto e amplamente utilizado em ciência de dados. Suportado por uma grande comunidade.
O que é o RStudio?:
Interface gráfica para facilitar o uso do R. Organização de scripts, ambiente e visualizações.
Tipos de Objetos Básicos mais Utilizados:
#Criação de objetos básicos (esses objetos ficam salvos no Environment)
#Vetores
vector <- c(1, 2, 3, 4)
#Listas
lista <- list(1, "a", TRUE, 3.5)
#Matrizes
matriz <- matrix(1:9, nrow = 3)
#Data Frames
marco_dados <- data.frame(nome = c("Ana", "Bruno"), idade = c(25, 30))## [1] 1 2 3 4
## [[1]]
## [1] 1
##
## [[2]]
## [1] "a"
##
## [[3]]
## [1] TRUE
##
## [[4]]
## [1] 3.5
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
## nome idade
## 1 Ana 25
## 2 Bruno 30
# Operações básicas (O R permite fazer operações algebráicas)
x <- 10 # Criamos um objeto chamado X e conferimos a ele o valor 10
y <- 5 # Criamos um objeto chamado Y e conferimos a ele o valor 5
soma <- x + y # Adição X mais Y
produto <- x * y # Multiplicação de X veces Y
divisao <- x / y # Divisão X entre Y
expoente <- x^y # Exponenciação de X a Y potencia## [1] 15
## [1] 50
## [1] 2
## [1] 1e+05
# Criando e Acessando Objetos no R base
meu_vetor <- c(10, 20, 30, 40) # Criamos o objeto chamado meu_vetor
meu_vetor[2] # Acessamos o segundo elemento do nosso objeto meu_vetor (o número 2 se refere a posição 2)## [1] 20
meu_vetor[4] # Acessamos o quarto elemento do nosso objeto meu_vetor (o número 4 se refere a posição 4)## [1] 40
meu_df <- data.frame(a = c(1, 2, 3), b = c("A", "B", "C")) # Criamos data frame meu_df
meu_df$a # Acessa a coluna 'a' do nosso objeto chamado meu_df## [1] 1 2 3
## [1] "A" "B" "C"
dplyr:Manipulação de dados eficiente: Oferece funções fáceis e rápidas para filtrar, agrupar, ordenar, resumir e modificar dados em data frames e tibble.
Sintaxe intuitiva: O dplyr utiliza uma sintaxe simples e legível com o uso do operador %>% (pipe), permitindo encadear várias operações em um fluxo claro e conciso.
Funções principais: Algumas das funções mais populares incluem:
# install.packages("dplyr") # Instalamos o pocote "dplyr" com o comando install.packages()
library(dplyr) # Chamamos o pacote dplyr para poder utilizar as suas funções
## Importação de Dados para manipulaçâo com o pacote dplyr
# install.packages("readr") # Instalamos o pacote readr pra poder importar dados no formato csv
library(readr) # Chamamos o pacote readr pra poder utilizar as suas funções
dados <- read_csv("vccin_sfty_dag.csv") # Importamos os dados (utilizar o caminho do seu computador / o diretorio onde ficou salvo o banco de dados no seu computador)
head(dados) # Chamamos as primeiras 6 linhas de nosso banco de dados## # A tibble: 6 × 5
## country `2015` `2016` `2017` `2018`
## <chr> <dbl> <lgl> <lgl> <dbl>
## 1 Afghanistan 8.5 NA NA 4.5
## 2 Albania NA NA NA 15.8
## 3 UAE NA NA NA 4.4
## 4 Argentina 1.2 NA NA 4.8
## 5 Armenia 21.6 NA NA 20.6
## 6 Australia 5.4 NA NA 6.9
## [1] 146 5
# Renomear colunas com a função rename()
# Criamos um novo banco de dados chamado dados_ren, chamamos o banco original (chamado dados),
# usamos o conetor (pipe) %>% para ligar o banco de dados original com a função rename(). A
# gramática desse função pede colocar primrio o novo nome da coluna seguido do simbolo igual (=)
# e depois o nome velio da coluna.
names(dados)## [1] "country" "2015" "2016" "2017" "2018"
dados_ren <- dados %>%
rename(
pais = country, # Renomeia 'country' para 'pais'
ano_2015 = "2015", # Renomeia 'X2015' para 'year_2015'
ano_2016 = "2016", # Renomeia 'X2016' para 'year_2016'
ano_2017 = "2017", # Renomeia 'X2017' para 'year_2017'
ano_2018 = "2018" # Renomeia 'X2018' para 'year_2018'
)
# Verifique as novas colunas
head(dados_ren)## # A tibble: 6 × 5
## pais ano_2015 ano_2016 ano_2017 ano_2018
## <chr> <dbl> <lgl> <lgl> <dbl>
## 1 Afghanistan 8.5 NA NA 4.5
## 2 Albania NA NA NA 15.8
## 3 UAE NA NA NA 4.4
## 4 Argentina 1.2 NA NA 4.8
## 5 Armenia 21.6 NA NA 20.6
## 6 Australia 5.4 NA NA 6.9
# Filtrar dados com base nas linhas com a função filter()
# Criamos um novo banco de dados chamado dados_filtrados, chamamos o banco original (chamado dados),
# usamos o conetor (pipe) %>% para ligar o banco de dados original com a função filter(). A
# gramática desse função pede colocar primrio o nome da coluna de interesse, e indicar uma
# condição a seguir para filtrar os dados de interesse.
dados_filtrados <- dados_ren %>%
filter(ano_2018 > 10) # Filtrar dados da coluna X2018 com valor maior que 10
dim(dados_filtrados) # Comando pra observar o número de filas (agora 53) e colunas (5)## [1] 53 5
## # A tibble: 6 × 5
## pais ano_2015 ano_2016 ano_2017 ano_2018
## <chr> <dbl> <lgl> <lgl> <dbl>
## 1 Albania NA NA NA 15.8
## 2 Armenia 21.6 NA NA 20.6
## 3 Austria 14.6 NA NA 21.1
## 4 Azerbaijan 13.7 NA NA 11.2
## 5 Belgium 14 NA NA 20.6
## 6 Benin NA NA NA 14
dados_filtrados_2 <- dados_ren %>%
filter(ano_2018 > 10 & ano_2018 < 20) # Filtrar dados da coluna X2018 com valor maior que 10 e (&) menor do que 20
dim(dados_filtrados_2) # Comando pra observar o número de filas (agora 42) e colunas (5)## [1] 42 5
## # A tibble: 6 × 5
## pais ano_2015 ano_2016 ano_2017 ano_2018
## <chr> <dbl> <lgl> <lgl> <dbl>
## 1 Albania NA NA NA 15.8
## 2 Azerbaijan 13.7 NA NA 11.2
## 3 Benin NA NA NA 14
## 4 Bulgaria 12.1 NA NA 15.6
## 5 Belarus NA NA NA 14.8
## 6 Bolivia NA NA NA 13.1
dados_filtrados_3 <- dados_ren %>%
filter(ano_2015 == 14 | ano_2018 == 14) # Filtrar dados da coluna X2015 com valor igual que 14 ou (|) dados na coluna ano_2018 (também) igual do que 14
dim(dados_filtrados_3) # Comando pra observar o número de filas (agora 2) e colunas (5)## [1] 2 5
## # A tibble: 2 × 5
## pais ano_2015 ano_2016 ano_2017 ano_2018
## <chr> <dbl> <lgl> <lgl> <dbl>
## 1 Belgium 14 NA NA 20.6
## 2 Benin NA NA NA 14
dados_filtrados_4 <- dados_ren %>%
filter(ano_2015 == ano_2018) # Filtrar dados iguais tanto na coluna ano_2015 como na coluna ano_2018
dim(dados_filtrados_4) # Comando pra observar o número de filas (agora 1) e colunas (5)## [1] 1 5
## # A tibble: 1 × 5
## pais ano_2015 ano_2016 ano_2017 ano_2018
## <chr> <dbl> <lgl> <lgl> <dbl>
## 1 UK 8.7 NA NA 8.7
# Os seguentes comandos permitem apagar objetos específicos:
remove(dados_filtrados)
rm(dados_filtrados_2)
remove(dados_filtrados_3)
rm(dados_filtrados_4)# Selecionar colunas específicas
# Criamos um novo banco de dados chamado dados_selecionados, chamamos o banco original
# (chamado dados), usamos o conetor (pipe) %>% para ligar o banco de dados original com
# a função select(). A gramática desse função pede colocar o nome de cada coluna a ser
# selecionada
dados_selecionados <- dados_ren %>%
select(pais, ano_2015, ano_2018) # Selecionando colunas específicas pelo nome delas
head(dados_selecionados)## # A tibble: 6 × 3
## pais ano_2015 ano_2018
## <chr> <dbl> <dbl>
## 1 Afghanistan 8.5 4.5
## 2 Albania NA 15.8
## 3 UAE NA 4.4
## 4 Argentina 1.2 4.8
## 5 Armenia 21.6 20.6
## 6 Australia 5.4 6.9
# Criar novas variáveis
# Criamos um novo banco de dados chamado dados_mutados, chamamos o banco original
# (chamado dados_selecionados), usamos o conetor (pipe) %>% para ligar o banco de dados original
# com a função mutate(). A gramática desse função pede colocar o nome de nova coluna (ou variável)
# que deseja criar, depois escreve a condição pra criar essa variável.
dados_mutados <- dados_selecionados %>%
mutate(differ = ano_2018 - ano_2015) # Criando novas variáveis chamada "differ", com base na diferença entre os valores da coluna ano_2018 e ano_2015
head(dados_mutados, 10)## # A tibble: 10 × 4
## pais ano_2015 ano_2018 differ
## <chr> <dbl> <dbl> <dbl>
## 1 Afghanistan 8.5 4.5 -4
## 2 Albania NA 15.8 NA
## 3 UAE NA 4.4 NA
## 4 Argentina 1.2 4.8 3.6
## 5 Armenia 21.6 20.6 -1
## 6 Australia 5.4 6.9 1.5
## 7 Austria 14.6 21.1 6.5
## 8 Azerbaijan 13.7 11.2 -2.5
## 9 Burundi NA 6.5 NA
## 10 Belgium 14 20.6 6.6
# Criando novas variáveis um pouco mais complexas
# Vamos criar uma nova variável com as pocentagems da diferença encontrada na nova variável differ com respeito aos valores da coluna ano_2015
dados_mutados <- dados_mutados %>%
mutate(differ_per = differ / ano_2015 * 100) %>% # Calculamos a porcentagem da diferença encontrada entre os valores a coluna ano_2015 e ano_2018, e arredondamos para 2 decimais (com a função round())
mutate(differ_per = round(differ_per, 2)) # Arredondamos para 2 decimais
head(dados_mutados, 10)## # A tibble: 10 × 5
## pais ano_2015 ano_2018 differ differ_per
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Afghanistan 8.5 4.5 -4 -47.1
## 2 Albania NA 15.8 NA NA
## 3 UAE NA 4.4 NA NA
## 4 Argentina 1.2 4.8 3.6 300
## 5 Armenia 21.6 20.6 -1 -4.63
## 6 Australia 5.4 6.9 1.5 27.8
## 7 Austria 14.6 21.1 6.5 44.5
## 8 Azerbaijan 13.7 11.2 -2.5 -18.2
## 9 Burundi NA 6.5 NA NA
## 10 Belgium 14 20.6 6.6 47.1
# Vamnos criar duas novas variáveis categóricas com base nos valores das variáveis ano_2015 e ano_2018
dados_mutados <- dados_mutados %>%
mutate(X2015_cat = case_when(ano_2015 < 10 ~ "< 10",
ano_2015 > 9 & ano_2015 < 20 ~ "10 - 20",
ano_2015 > 19 ~ "20 ou mais")) %>% # Criando variável con categorías
mutate(X2018_cat = case_when(ano_2018 < 10 ~ "< 10",
ano_2018 > 9 & ano_2018 < 20 ~ "10 - 20",
ano_2018 > 19 ~ "20 ou mais")) # Criando variável con categorías
head(dados_mutados, 10)## # A tibble: 10 × 7
## pais ano_2015 ano_2018 differ differ_per X2015_cat X2018_cat
## <chr> <dbl> <dbl> <dbl> <dbl> <chr> <chr>
## 1 Afghanistan 8.5 4.5 -4 -47.1 < 10 < 10
## 2 Albania NA 15.8 NA NA <NA> 10 - 20
## 3 UAE NA 4.4 NA NA <NA> < 10
## 4 Argentina 1.2 4.8 3.6 300 < 10 < 10
## 5 Armenia 21.6 20.6 -1 -4.63 20 ou mais 20 ou mais
## 6 Australia 5.4 6.9 1.5 27.8 < 10 < 10
## 7 Austria 14.6 21.1 6.5 44.5 10 - 20 20 ou mais
## 8 Azerbaijan 13.7 11.2 -2.5 -18.2 10 - 20 10 - 20
## 9 Burundi NA 6.5 NA NA <NA> < 10
## 10 Belgium 14 20.6 6.6 47.1 10 - 20 20 ou mais
Tabelas Simples com summary() e table()
# install.packages("car")
library(car)
data(Chile)
# Verificando o tipo de variável
class(Chile$region) # factor, objeto que representa numericamente variáveis categóricas.## [1] "factor"
## [1] "factor"
## [1] "factor"
## [1] "integer"
## [1] "numeric"
# Verifico quais são as categorias das variáveis categóricas
levels(Chile$region) # Essa variável tem cinco categorías.## [1] "C" "M" "N" "S" "SA"
## [1] "F" "M"
##
## C M N S SA
## 600 100 322 718 960
##
## F M
## 1379 1321
# Proporcao da tabela (frequência relativa)
prop.table(table(Chile$region)) # Função prop.table calcula a proporção das frequencias##
## C M N S SA
## 0.22222222 0.03703704 0.11925926 0.26592593 0.35555556
##
## C M N S SA
## 22.222222 3.703704 11.925926 26.592593 35.555556
# Arredondando
round(prop.table(table(Chile$region)) * 100, 2) # Se arredonda pra não ter muitos decimais##
## C M N S SA
## 22.22 3.70 11.93 26.59 35.56
# Tabelas de Contingência (cruzamento de duas variáveis categóricas)
table(Chile$region, Chile$sex) # Com frequências absolutas##
## F M
## C 300 300
## M 51 49
## N 168 154
## S 362 356
## SA 498 462
##
## F M
## C 300 300
## M 51 49
## N 168 154
## S 362 356
## SA 498 462
# Frequencias relativas na linha expresso em 100% e arredondando a dois decimais
round(prop.table(tabela_cont, 1) * 100, 2) # Número 1 depois da tabela_count significa linha##
## F M
## C 50.00 50.00
## M 51.00 49.00
## N 52.17 47.83
## S 50.42 49.58
## SA 51.88 48.12
##
## F M
## C 300 300
## M 51 49
## N 168 154
## S 362 356
## SA 498 462
# Frequencias relativas na coluna expresso em 100% e arredondando a dois decimais
round(prop.table(tabela_cont, 2) * 100, 2) # Número 2 depois da tabela_count significa coluna##
## F M
## C 21.75 22.71
## M 3.70 3.71
## N 12.18 11.66
## S 26.25 26.95
## SA 36.11 34.97
O janitor é um pacote do R que facilita a limpeza e organização de dados.
Limpar nomes de colunas: clean_names() → Padroniza nomes de colunas para letras minúsculas e sem espaços. Detectar e remover duplicatas: get_dupes() → Identifica valores duplicados.
Tabulações rápidas: tabyl() → Cria tabelas de frequência organizadas. Gerenciar valores ausentes: remove_empty() → Remove linhas/colunas vazias.
Ideal para pré-processamento de dados.
# O pacote `janitor`
# install.packages("janitor") # Instalamos o pacote
library(janitor) # Chamamos o pacote
# Criar um data frame (com a função data.frame()) com nomes de colunas "sujos" (embarulados)
df <- data.frame("Nome completo" = c("Ana", "João", "Pedro"), # Primeiro colocamos o nome da coluna em aspas, seguido do conteudo (cuando o conteudo é categórico também colocamos aspas)
"Idade anos" = c(25, 30, 28), # Cuando o conteudo da coluna é nimérico não precia aspas
"E-MAIL-PERS" = c("ana@email.com", "joao@email.com", "pedro@email.com"))
df## Nome.completo Idade..anos E.MAIL.PERS
## 1 Ana 25 ana@email.com
## 2 João 30 joao@email.com
## 3 Pedro 28 pedro@email.com
## nome_completo idade_anos e_mail_pers
## 1 Ana 25 ana@email.com
## 2 João 30 joao@email.com
## 3 Pedro 28 pedro@email.com
# Criar um data frame com duplicatas
df <- data.frame(nome = c("Ana", "João", "Ana", "Maria", "Ana"),
idade = c(25, 30, 25, 40, 25))
df## nome idade
## 1 Ana 25
## 2 João 30
## 3 Ana 25
## 4 Maria 40
## 5 Ana 25
# Encontrar duplicatas na coluna "nome"
df_dupes <- get_dupes(df, nome)
# Ver resultado
print(df_dupes)## nome dupe_count idade
## 1 Ana 3 25
## 2 Ana 3 25
## 3 Ana 3 25
remove(df_dupes) # Apagar objeto df_dupes
# Criar um data frame com colunas e linhas vazias
df <- data.frame(nome = c("Ana", "João", NA),
idade = c(25, 30, NA),
cidade = c(NA, NA, NA)) # Coluna vazia
df## nome idade cidade
## 1 Ana 25 NA
## 2 João 30 NA
## 3 <NA> NA NA
# Remover apenas colunas vazias
df_sem_colunas_vazias <- remove_empty(df, which = "cols")
df_sem_colunas_vazias## nome idade
## 1 Ana 25
## 2 João 30
## 3 <NA> NA
rm(df_sem_colunas_vazias) # Apagar objeto df_sem_colunas_vazias
# Remover apenas linhas vazias
df_sem_linhas_vazias <- remove_empty(df, which = "rows")
df_sem_linhas_vazias## nome idade cidade
## 1 Ana 25 NA
## 2 João 30 NA
remove(df_sem_linhas_vazias) # Apagar objeto df_sem_linhas_vazias
# Remover ambas (linhas e colunas)
df_limpo <- remove_empty(df, which = c("rows", "cols"))
# Ver resultado final
print(df_limpo)## nome idade
## 1 Ana 25
## 2 João 30
#Tabela mais limpa com a função tabyl() do pacote janitor
# Criando uma tabela mais limpa com o janitor
Chile %>% # O banco de dados com as variáveis de interesse (neste caso o banco Chile)
tabyl(region) %>% # Entre paréntese colocar a variável de interesse
adorn_totals() %>% # Indicar que o R totalice os valores
adorn_pct_formatting() # Apresentar as frequências relativas como porcentagens## region n percent
## C 600 22.2%
## M 100 3.7%
## N 322 11.9%
## S 718 26.6%
## SA 960 35.6%
## Total 2700 100.0%
# Tabela de contngência (com porcentagem na linha)
Chile %>% # O banco de dados com as variáveis de interesse (neste caso o banco Chile)
tabyl(region, sex) %>% # Entre paréntese colocar a variável de interesse
adorn_totals("col") %>% #Indicar coluna o fila para totalizar os valores
adorn_percentages("row") %>% # Apresentar como porcentagens na coluna o na fila (a sua escolia)
adorn_pct_formatting(digits = 2) %>% # A formatação das porcentagems (0, 1, 2, etc. decimais)
adorn_ns("front") %>% # Addicionar a n (frequencia absoluta) antes ("front") ou depois ("rear") da porcentagem
adorn_title(row_name = "Região", col_name = "Sexo") # Renomear a fila e a coluna## Sexo
## Região F M Total
## C 300 (50.00%) 300 (50.00%) 600 (100.00%)
## M 51 (51.00%) 49 (49.00%) 100 (100.00%)
## N 168 (52.17%) 154 (47.83%) 322 (100.00%)
## S 362 (50.42%) 356 (49.58%) 718 (100.00%)
## SA 498 (51.88%) 462 (48.12%) 960 (100.00%)
# Tabela de contngência (com porcentagem na coluna)
Chile %>% # O banco de dados com as variáveis de interesse (neste caso o banco Chile)
tabyl(region, sex) %>% # Entre paréntese colocar a variável de interesse
adorn_totals("row") %>% #Indicar coluna o fila para totalizar os valores
adorn_percentages("col") %>% # Apresentar como porcentagens na coluna o na fila (a sua escolia)
adorn_pct_formatting(digits = 1) %>% # A formatação das porcentagems (0, 1, 2, etc. decimais)
adorn_ns("rear") %>% # Addicionar a n (frequencia absoluta) antes ("front") ou depois ("rear") da porcentagem
adorn_title(row_name = "Região", col_name = "Sexo") # Renomear a fila e a coluna## Sexo
## Região F M
## C 21.8% (300) 22.7% (300)
## M 3.7% (51) 3.7% (49)
## N 12.2% (168) 11.7% (154)
## S 26.3% (362) 26.9% (356)
## SA 36.1% (498) 35.0% (462)
## Total 100.0% (1,379) 100.0% (1,321)
# Instalar e chamar o pacote gt
# install.packages("gt")
library(gt)
# Criamos uma tabela com a função tabyl() do pacote janitor
# Primeiro passo (criar a tabela_1):
tabela_1 <- Chile %>% # O banco de dados com as variáveis de interesse
tabyl(region) %>% # Entre paréntese coloca a variável de interesse
adorn_totals() %>%
adorn_pct_formatting()
# Segundo passo (aperfumar a tabela_1):
tabela_1 %>% gt() %>%
cols_label(region = md("Região"), n = md("n"), percent = md("%")) %>%
cols_width(region ~ px(200), n ~ px(50), percent ~ px(80)) %>%
cols_align(align = c("left"), columns = region) %>%
cols_align(align = c("center"), columns = n) %>%
cols_align(align = c("center"), columns = percent) %>%
tab_header(title = md("Regiões administrativas na consulta popular do Chile, 1988"))| Regiões administrativas na consulta popular do Chile, 1988 | ||
| Região | n | % |
|---|---|---|
| C | 600 | 22.2% |
| M | 100 | 3.7% |
| N | 322 | 11.9% |
| S | 718 | 26.6% |
| SA | 960 | 35.6% |
| Total | 2700 | 100.0% |
Pasos para exportar como documento de Word
#Primeiro criamos um objeto para salvar nossa tabela feita com gt
tabela_word <- tabela_1 %>%
gt() %>%
cols_label(region = md("Região"), n = md("n"), percent = md("%")) %>%
cols_width(region ~ px(200), n ~ px(50), percent ~ px(80)) %>%
cols_align(align = c("left"), columns = region) %>%
cols_align(align = c("center"), columns = n) %>%
cols_align(align = c("center"), columns = percent) %>%
tab_header(title = md("Regiões administrativas na consulta popular do Chile, 1988"))
# mostrar o diretorio de trabalho
dir <- getwd()
print(dir)## [1] "C:/Users/zzrg/OneDrive/Desktop/Mis_Carpetas/Doutorado_PEQ/Mini_curso_R/mini_curso_R"
# Depois salvamos como arquivo de Word
tabela_word %>% # Lembrar de colocar o camino hacia o diretorio de trabalho no seu computador, dar um nome ao arquivo Word (exemplo: tabela_gt_Chile) e adicionar no final .docx que indica o tipo de arquivo a ser criado
gtsave("/Users/zzrg/OneDrive/Desktop/Mis_Carpetas/Doutorado_PEQ/Mini_curso_R/mini_curso_R/tabela_gt_Chile.docx")
# Com certeza vai facilitar o seu trabalho galera!# Criamos uma tabela cruzada com a função tabyl() do pacote janitor
# Primeiro passo (criar a tabela_2):
tabela_2 <- Chile %>% # O banco de dados com as variáveis de interesse
tabyl(region, sex) %>% # Entre paréntese coloca a variável de interesse
adorn_totals("col") %>% #Indicar coluna o fila para totalizar os valores
adorn_percentages("row") %>% # Apresentar como porcentagens na coluna o na fila
adorn_pct_formatting(digits = 2) %>% # A formatação das porcentagems
adorn_ns("front") # Addicionar a n (frequencia absoluta) antes ou depois da porcentagem
# Segundo passo (aperfumar a tabela_2):
tabela_2 %>% gt() %>%
cols_label(region = md("Região"), F = md("Feminino"), M = md("Masculino"), Total = md("Total")) %>%
cols_width(region ~ px(100), F ~ px(150), M ~ px(150), Total ~ px(150)) %>%
cols_align(align = c("left"), columns = region) %>%
cols_align(align = c("center"), columns = F) %>%
cols_align(align = c("center"), columns = M) %>%
cols_align(align = c("right"), columns = Total) %>%
tab_header(title = md("Regiões administrativas por sexo das pessoas na consulta popular do Chile, 1988")) %>%
tab_source_note(source_note = "Fonte: Faculdade Latinoamericana de Ciências Sociais / Chile, 1988.")| Regiões administrativas por sexo das pessoas na consulta popular do Chile, 1988 | |||
| Região | Feminino | Masculino | Total |
|---|---|---|---|
| C | 300 (50.00%) | 300 (50.00%) | 600 (100.00%) |
| M | 51 (51.00%) | 49 (49.00%) | 100 (100.00%) |
| N | 168 (52.17%) | 154 (47.83%) | 322 (100.00%) |
| S | 362 (50.42%) | 356 (49.58%) | 718 (100.00%) |
| SA | 498 (51.88%) | 462 (48.12%) | 960 (100.00%) |
| Fonte: Faculdade Latinoamericana de Ciências Sociais / Chile, 1988. | |||
# Pasos para exportar como documento de Word
#Primeiro criamos um objeto para salvar nossa tabela feita com gt
tabela_word_2 <- tabela_2 %>%
gt() %>%
cols_label(region = md("Região"), F = md("Feminino"), M = md("Masculino"), Total = md("Total")) %>%
cols_width(region ~ px(100), F ~ px(150), M ~ px(150), Total ~ px(150)) %>%
cols_align(align = c("left"), columns = region) %>%
cols_align(align = c("center"), columns = F) %>%
cols_align(align = c("center"), columns = M) %>%
cols_align(align = c("right"), columns = Total) %>%
tab_header(title = md("Regiões administrativas por sexo das pessoas na consulta popular do Chile, 1988")) %>%
tab_source_note(source_note = "Fonte: Faculdade Latinoamericana de Ciências Sociais / Chile, 1988.")
# Depois salvamos como arquivo de Word
tabela_word_2 %>% # Lembrar de colocar o camino hacia o diretorio de trabalho no seu computador, dar um nome ao arquivo Word (exemplo: tabela_gt_Chile_2) e adicionar no final .docx que indica o tipo de arquivo a ser criado
gtsave("/Users/zzrg/OneDrive/Desktop/Mis_Carpetas/Doutorado_PEQ/Mini_curso_R/mini_curso_R/tabela_gt_Chile_2.docx")
# A tabela vai ficar salva no seu computador no diretorio (e pasta específica) que você indicou pra o RBOMUN:
Agora fazemos uma tabela resumo das medidas de tendença central de uma variável numérica usando a função get_summary_stats() do pacote rstatix
# install.packages("rstatix") # Instalar o pacote rstatix
library(rstatix) # Chamar o pacote rstatix
# Carregamos o banco de dado chamado penguins do pacote modeldata
#install.packages("modeldata") # Instalamos o pacote
library(modeldata) # Chamamos o pacote
# Install the package (if not already installed)
#install.packages("palmerpenguins")
# Load the package
library(palmerpenguins)
dados <- na.omit(penguins) # Carregamos os dados, criamos o objeto dados, e removendo os NAs (dados perdidos)
head(dados) # Chamamos as primeiras 6 linhas do banco de dados## # A tibble: 6 × 8
## species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
## <fct> <fct> <dbl> <dbl> <int> <int>
## 1 Adelie Torgersen 39.1 18.7 181 3750
## 2 Adelie Torgersen 39.5 17.4 186 3800
## 3 Adelie Torgersen 40.3 18 195 3250
## 4 Adelie Torgersen 36.7 19.3 193 3450
## 5 Adelie Torgersen 39.3 20.6 190 3650
## 6 Adelie Torgersen 38.9 17.8 181 3625
## # ℹ 2 more variables: sex <fct>, year <int>
# Criamos uma tabela resumo (variável numérica) com a função get_summary_stats do pacote rstatix
dados %>% # Indicamos o banco de dados
get_summary_stats(body_mass_g, type = "full", # Indicamos a variável de interesse (neste caso body_mass_g)
show = c("n", "min", "mean", "sd", "median", "max")) # Incluimos a n, valor mínimo, média, desvio padrão, mediana, e valor máximo (pode adicionar mais medidas, consultat informações no help)## # A tibble: 1 × 7
## variable n min mean sd median max
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 body_mass_g 333 2700 4207. 805. 4050 6300
peso <- dados %>% # Indicamos o banco de dados que tem a nossa variável de interesse
rename(Índice_massa_corporal = body_mass_g) %>% # Renomeamos (com função rename()) a variável de interesse (passamos do inglê es ao português)
select(Índice_massa_corporal) %>% # Selecionamos (com a função select()) a variável de interesse (agora ela se chama Índice_massa_corporal e já não body_mass_g)
get_summary_stats(type = "full", # Como a variável de interesse já foi selecionada na linha da acima, não precisamos voltar a colocar-la nesta linha
show = c("n", "min", "mean", "sd", "median", "max")) # Incluimos a n, valor mínimo, média, desvio padrão, mediana, e valor máximo
peso## # A tibble: 1 × 7
## variable n min mean sd median max
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Índice_massa_corporal 333 2700 4207. 805. 4050 6300
# Aperfumamos a tabela peso com funções do pacote gt
peso %>% gt() %>%
cols_label(variable = md("Variável"), n = md("n"), min = md("Valor Mínimo"),
mean = md("Média"), sd = md("D. Padrão"), median = md("Mediana"),
max = md("Valor Máximo")) %>%
cols_width(variable ~ px(200), n ~ px(50), min ~ px(100), mean ~ px(100),
sd ~ px(100), median ~ px(100), max ~ px(100)) %>%
cols_align(align = c("left"), columns = variable) %>%
cols_align(align = c("center"), columns = n) %>%
cols_align(align = c("center"), columns = min) %>%
cols_align(align = c("center"), columns = mean) %>%
cols_align(align = c("center"), columns = sd) %>%
cols_align(align = c("center"), columns = median) %>%
cols_align(align = c("center"), columns = max) %>%
tab_header(title = md("Medidas de tendença central da variável IMC"))| Medidas de tendença central da variável IMC | ||||||
| Variável | n | Valor Mínimo | Média | D. Padrão | Mediana | Valor Máximo |
|---|---|---|---|---|---|---|
| Índice_massa_corporal | 333 | 2700 | 4207.057 | 805.216 | 4050 | 6300 |
Gráficos no R Base
# Histograma (Aperfumado)
hist(Chile$age, main = "Histograma", xlab = "Idade", ylab = "Frequência", # Adicionamos um título, e nomes aos eixos X e Y
col = "lightblue", border = "black") # Adicionamos as cores as barras e aos bordes# Gráfico de barras (Aperfumamos)
barplot(table(Chile$sex), col = c("lightblue", "pink"), # Adicionamos cores a cada categoria
main = "Distribuição por sexo", xlab = "Sexo", ylab = "Frequência") # Adicionamos um título e nomes ao eixos X e Y # Boxplot (variáveis numérica, mas pode ser combinado com uma variável categórica para olhar differenças entre grupos)
boxplot(Chile$age ~ Chile$sex) # Codigo básico# Boxplot (Aperfumamos)
boxplot(Chile$age ~ Chile$sex, main = "Boxplot", xlab = "Sexo", ylab = "Idade", # Adicionamos um título e nomes ao eixos X e Y
col = c("pink", "lightblue")) # Adicionamos cores a cada categoriaVisialização de dados com o pacote ggplot2 (a coisa mais legal do mundo!)
# install.packages("ggplot2") # Instalamos o pacote
library(ggplot2) # Chamamos o pacote
# Para essa parte, voltamos a chamar o banco de dados penguins
dados <- na.omit(penguins) # Carregamos os dados, criamos o objeto dados, e removendo os NAs (dados perdidos)
head(dados) # Chamamos as primeiras 6 linhas do banco de dados## # A tibble: 6 × 8
## species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
## <fct> <fct> <dbl> <dbl> <int> <int>
## 1 Adelie Torgersen 39.1 18.7 181 3750
## 2 Adelie Torgersen 39.5 17.4 186 3800
## 3 Adelie Torgersen 40.3 18 195 3250
## 4 Adelie Torgersen 36.7 19.3 193 3450
## 5 Adelie Torgersen 39.3 20.6 190 3650
## 6 Adelie Torgersen 38.9 17.8 181 3625
## # ℹ 2 more variables: sex <fct>, year <int>
# Agora criamos um banco de dados final (dados_final) com os dados do banco penguins
dados1 <- rename(dados, especies = species, # Renomeamos as colunas (variáveis) do inglês ao português
ilha = island,
comprimento_bico_mm = bill_length_mm,
largura_bico_mm = bill_depth_mm,
comprimento_asa_mm = flipper_length_mm,
massa_corporal_g = body_mass_g,
sexo = sex)
dados2 <- arrange(dados1, massa_corporal_g) # Ordenamos os dados com base na coluna massa_corporal_g
dados_final <- mutate(dados2, razao = comprimento_bico_mm/largura_bico_mm) # Criamos uma nova variável (coluna) chamada razao
#Gráfico de barras (variável categórica)
ggplot(dados_final, aes(especies)) + # Nessa linha, colocamos o nome do banco de dados, seguido por a função aes(aqui va o nome da variável que desejamos plotar)
geom_bar(fill = "green") + # Indicamos o tipo de gráfico (geom_bar neste caso), podemos addicionar uma cor
xlab("Espécies") + # Renomeamos o eixo X
ylab("Contagem") + # Renomeamos o eixo Y
ggtitle("Contagem de espécies de pássaros", # Adicionamos um título
subtitle = "nos anos de 2007, 2008 e 2009") # Adicionamos um subtítulo# Diferenciar por cor cada coluna
ggplot(dados_final, aes(especies, fill = especies)) + # Nessa linha, colocamos o nome do banco de dados, seguido por a função aes(aqui va o nome da variável que desejamos plotar)
geom_bar() + # Indicamos o tipo de gráfico (geom_bar neste caso), podemos addicionar uma cor
xlab("Espécies") + # Renomeamos o eixo X
ylab("Contagem") + # Renomeamos o eixo Y
ggtitle("Contagem de espécies de pássaros", # Adicionamos um título
subtitle = "nos anos de 2007, 2008 e 2009") # Adicionamos um subtítulo# Diferenciar por cor cada coluna e renomeando a legenda do gráfico (linha 640 do código)
ggplot(dados_final, aes(especies, fill = especies)) + # Nessa linha, podemos adicionar o comando fill= seguido da variável especies para colocar cor diferente para cada categoría
geom_bar() + # Indicamos o tipo de gráfico (geom_bar neste caso)
labs(x = "Espécies", # Outro jeito de renomeamos o eixo X
y = "Contagem", # Outro jeito de renomeamos o eixo Y
fill = "Espécies de Penguins") + # Renomeamos a legenda das categorías das espécies dos penguins
ggtitle("Contagem de espécies de pássaros", # Adicionamos um título
subtitle = "nos anos de 2007, 2008 e 2009") # Adicionamos um subtítulo# Diferenciar por cor cada coluna (com as cores da nossa própria escolha!)
cores <- c("red", "blue", "yellow") # Criamos um objeto contendo as cores que desejamos colocar a nossas categorias
ggplot(dados_final, aes(especies)) + # Nessa linha colocamos a variável de interesse.
geom_bar(fill = cores) + # Indicamos o tipo de gráfico (geom_bar neste caso), e indicamos as cores contidas em nosso objeto chamado cores
xlab("Espécies") + # Renomeamos o eixo X
ylab("Contagem") + # Renomeamos o eixo Y
ggtitle("Contagem de espécies de pássaros", # Adicionamos um título
subtitle = "nos anos de 2007, 2008 e 2009") # Adicionamos um subtítulocores_2 <- c("#FE85AD", "#48144F", "#555599") # Podemos selecionar otras cores (podem consultar esse link: https://pmassicotte.github.io/paletteer_gallery/)
ggplot(dados_final, aes(ilha))+
geom_bar(fill = cores_2)+
xlab("Ilha") +
ylab("Contagem") +
ggtitle("Contagem de ilhas onde moram os pássaros", # Adicionamos um título
subtitle = "para os de 2007, 2008 e 2009")# Histograma
cores_3 <- c("#088BBEFF") # A número de cores tem que concordar com o número de categorías da variável
ggplot(dados_final, aes(largura_bico_mm))+
geom_histogram(fill = cores_3)+
xlab("Largura do bico (em mm)") +
ylab("Frequência") +
ggtitle("Frequência da largura de bico dos pássaros")cores_4 <- c("#C17D17FF") # A número de cores tem que concordar com o número de categorías da variável
ggplot(dados_final, aes(razao))+
geom_histogram(fill = cores_4)+
xlab("Razão (em mm)") +
ylab("Frequência") +
ggtitle("Frequência da razão do cumprimento e largura do bico")# Boxplot
cores_5 <- c("#A28F59FF") # A número de cores tem que concordar com o número de categorías da variável
ggplot(dados_final, aes(largura_bico_mm))+
geom_boxplot(fill = cores_5)+
xlab("Larguro do Bico (em mm)") +
ggtitle("Frequência da Largura do Bico")# Trocamos os eixos
ggplot(dados_final, aes(y = largura_bico_mm))+
geom_boxplot(fill = cores_5)+
ylab("Larguro do Bico (em mm)") +
ggtitle("Frequência da Largura do Bico")cores_6 <- c("#484860FF", "#486078FF", "#D8D8D8FF") # A número de cores tem que concordar com o número de categorías da variável
ggplot(dados_final, aes(largura_bico_mm, especies))+
geom_boxplot(fill = cores_6)+
xlab("Larguro do Bico (em mm)") +
ylab("Especies de Pinguins") +
ggtitle("Frequência da Largura do Bico por Especie de Pinguin")# Trocamos os eixos X e Y
ggplot(dados_final, aes(especies, largura_bico_mm))+
geom_boxplot(fill = cores_6)+
ylab("Larguro do Bico (em mm)") +
xlab("Especies de Pinguins") +
ggtitle("Frequência da Largura do Bico por Especie de Pinguin")ggplot(dados_final, aes(especies, comprimento_bico_mm))+
geom_boxplot(fill = cores_6)+
ylab("Comprimento do Bico (em mm)") +
xlab("Especies de Pinguins") +
ggtitle("Frequência do Comprimento do Bico por Especie de Pinguin")ggplot(dados_final, aes(especies, razao))+
geom_boxplot(fill = cores_6)+
ylab("Razão Comprimento / Largura do Bico (em mm)") +
xlab("Especies de Pinguins") +
ggtitle("Frequência da Ração do Cumprimento e a Largura do Bico por Especie de Pinguin")# Scatter plot
ggplot(dados_final, aes(largura_bico_mm, comprimento_bico_mm)) + # Nessa linha, colocamos o nome do banco de dados, seguido por aes(nome das variáveis que desejamos plotar)
geom_point() + # Indicamos o tipo de gráfico
xlab("Cumprimento do bico (em mm)") +
ylab("Largura do bico (em mm)") +
ggtitle("Relação entre o Cumprimento e a Largura do Bico dos Pinguins")# Scatter plot mais detalhado
ggplot(dados_final, aes(largura_bico_mm, comprimento_bico_mm)) + # Nessa linha, colocamos o nome do banco de dados, seguido por aes(nome das variáveis que desejamos plotar)
geom_point(colour = "#00740EFF") + # Indicamos o tipo de gráfico e uma cor (opcional)
geom_smooth(method = "lm", level = 0.95, col = "#B53737FF", linewidth = 0.75) + # Adicionamos uma linha de tendença (com o método lm), intervalo de confiânza, uma cor diferente, e uma espesura na linha
xlab("Cumprimento do bico (em mm)") +
ylab("Largura do bico (em mm)") +
ggtitle("Relação entre o Cumprimento e a Largura do Bico dos Pinguins")Beleza galera, novamente, muito obrigado pela sua participação e esforzo!!!!! Eu curti muito de voçês, voçês tem sido uma ÓTIMA turma!!! Desejo que, agora, o R já não seja tão “tortuoso” pra todas e todos vocês. Fico a disposição pra o que eu possa apoiar vocês, é só me falar, ta?
ABRAÇOS galera!