Objetivo Geral:
Objetivos Especificos:
Ambientação no Rstudio
Ter familiaridade com os principais Painéis do Rstudio
Usar Scripts e Markdowns
Compreender Limites de Processamento e buscar estratégias alternativas
Sintaxe do R:
Compreender os tipos de objetos em R: Valores, matrizes, dataframes, Listas
Saber aplicar Funções Aritiméticas à objetos
Saber aplicar Funções Estatistica à objetos
Saber aplicar Funções de criação de distribuições.
Estrituras de repetição
Familiaridade de pesquisar, Instalar e compreender pacotes de funções.
Importação de dados:
Manipulação de dados
Compreender Problemas de Organização de limpeza de dados
Enriquecer dados por meio de funções de fusão de dados
Seleção e Filtragem de dados em contextos de limpeza, amostragem e estratificação
Compreender granularidade e representatividade de dados e aplicar Funções de Agregação
Compreender a diferença entre dados em painel e cross section como dataframes.
Visualização de dados
Compreender diferentes formas de representação de variaveis qualitátivas e quantitativas
Compreender e aplicar sintaxe do pacote ggplot2
Fluxo de Analise de dados:
# Criando o grafo
library(igraph)
Warning: package ‘igraph’ was built under R version 4.2.3
Attaching package: ‘igraph’
The following objects are masked from ‘package:stats’:
decompose, spectrum
The following object is masked from ‘package:base’:
union
g <- graph( c( "Visualização","Interpretação",
"Interpretação", "Interesse
Desorientação",
"Interesse
Desorientação","Hipoteses",
"Hipoteses","Coleta
de Dados",
"Coleta
de Dados" ,"Limpesa
de dados",
"Limpesa
de dados","Analise
Exploratória",
"Analise
Exploratória","Coleta
de Dados",
"Modelagem", "Visualização",
"Analise
Exploratória","Visualização",
"Analise
Exploratória","Modelagem",
"Modelagem", "Hipoteses",
"Hipoteses", "Interpretação"
))
# define a cor do fundo
par(bg="black")
# plota o grafo com as cores definidas
plot(g, layout = layout.davidson.harel, vertex.size = 45, vertex.label.dist = .18,
edge.arrow.size = 0.3,# vertex.color = vertex_colors, edge.color = edge_colors,
vertex.frame.color = "black", vertex.label.color = "white",vertex.shape="none",vertex.label.font = 0.6,
vertex.label.font = 0.5, edge.curved=0.2, edge.width=1, main = "",layout.scale = 0.5,
margin = c(0.1, 0.1, 0.1, 0.1))
title(main="Fluxo de Analise de Dados", col.main="#F5F5F5")
NA
NA
NA
# Exemplo de código em R
# Comentário de uma linha
# Para comentar múltiplas linhas, utilize o símbolo '#' no início de cada linha
# Declaração de variáveis
x <- 5
y <- 10
# Operações matemáticas básicas
soma <- x + y
print(soma)
[1] 15
subtracao <- x - y
subtracao
[1] -5
multiplicacao <- x * y
multiplicacao
[1] 50
divisao <- x / y
divisao
[1] 0.5
potenciacao <- x ^ 2
potenciacao
[1] 25
raiz_quadrada <- sqrt(y)
raiz_quadrada
[1] 3.162278
# Impressão de resultados
cat("A soma de x e y é", soma, "\n")
A soma de x e y é 15
cat("A subtração de x e y é", subtracao, "\n")
A subtração de x e y é -5
cat("A multiplicação de x e y é", multiplicacao, "\n")
A multiplicação de x e y é 50
cat("A divisão de x por y é", divisao, "\n")
A divisão de x por y é 0.5
cat("O quadrado de x é", potenciacao, "\n")
O quadrado de x é 25
cat("A raiz quadrada de y é", raiz_quadrada, "\n")
A raiz quadrada de y é 3.162278
# Estruturas de controle de fluxo
if (x < y) {
cat("x é menor que y\n")
} else {
cat("x é maior que y\n")
}
x é menor que y
# Laço for
for (i in 1:5) {
cat("O valor de i é", i, "\n")
}
O valor de i é 1
O valor de i é 2
O valor de i é 3
O valor de i é 4
O valor de i é 5
# Vetores
vetor <- c(1, 2, 3, 4, 5)
cat("O primeiro elemento do vetor é", vetor[1], "\n")
O primeiro elemento do vetor é 1
cat("O segundo elemento do vetor é", vetor[2], "\n")
O segundo elemento do vetor é 2
cat("O tamanho do vetor é", length(vetor), "\n")
O tamanho do vetor é 5
cat("A soma dos elementos do vetor é", sum(vetor), "\n")
A soma dos elementos do vetor é 15
# Funções
minha_funcao <- function(a, b) {
return(a + b)
}
resultado <- minha_funcao(x, y)
cat("O resultado da função é", resultado, "\n")
O resultado da função é 15
#função com vetor
resultado <- minha_funcao(vetor, y)
resultado
[1] 11 12 13 14 15
# Criando um valor numérico
a <- 10
class(a)
[1] "numeric"
# Criando um valor lógico
b <- TRUE
class(b)
[1] "logical"
# Criando um vetor numérico
c <- c(1, 2, 3, 4, 5)
class(c)
[1] "numeric"
summary(d)
Length Class Mode
3 character character
# Criando uma matriz 2x2
e <- matrix(c(1, 2, 3, 4), nrow=2, ncol=2)
class(e)
[1] "matrix" "array"
# Criando um dataframe
f <- data.frame(nome=c("João", "Maria", "José"), idade=c(20, 25, 30), altura=c(1.75, 1.60, 1.80))
class(f)
[1] "data.frame"
# Criando uma lista
g <- list(nome="João", idade=20, altura=1.75)
class(g)
[1] "list"
summary(h)
alto baixo médio
1 2 1
# Criando um vetor de datas
i <- as.Date(c("2022-05-09", "2022-05-10", "2022-05-11"))
class(i)
[1] "Date"
# Vetores
vetor_inteiro <- c(1, 2, 3, 4, 5) # vetor de números inteiros
vetor_decimal <- c(1.5, 2.2, 3.7, 4.1, 5.9) # vetor de números decimais
vetor_caracter <- c("a", "b", "c", "d", "e") # vetor de caracteres
# Matrizes
matriz <- matrix(1:6, nrow = 2, ncol = 3) # matriz 2x3
matriz
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
as.data.frame(matriz)
# Data frames
df <- data.frame(
nome = c("Maria", "João", "Ana"),
idade = c(25, 30, 28),
salario = c(3500, 4000, 4500)
) # data frame com três variáveis
df
# Listas
lista <- list(
vetor_inteiro,
vetor_decimal,
vetor_caracter,
matriz,
df
) # lista com diferentes estruturas de dados
lista
# Classes
classe_vetor <- class(vetor_inteiro) # classe de um vetor
classe_vetor
[1] "numeric"
classe_matriz <- class(matriz) # classe de uma matriz
classe_matriz
[1] "matrix" "array"
classe_df <- class(df) # classe de um data frame
classe_df
[1] "data.frame"
classe_lista <- class(lista) # classe de uma lista
Error: object 'lista' not found
Explorando um pacote
#instalar um pacote
install.packages("dplyr")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/C358423/AppData/Local/R/win-library/4.2’
(as ‘lib’ is unspecified)
also installing the dependency ‘pillar’
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/pillar_1.9.0.zip'
Content type 'application/zip' length 659273 bytes (643 KB)
downloaded 643 KB
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/dplyr_1.1.2.zip'
Content type 'application/zip' length 1554601 bytes (1.5 MB)
downloaded 1.5 MB
package ‘pillar’ successfully unpacked and MD5 sums checked
package ‘dplyr’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\C358423\AppData\Local\Temp\RtmpWCBR2n\downloaded_packages
# Carregando o pacote que será explorado
library(dplyr)
Warning: package ‘dplyr’ was built under R version 4.2.3
Attaching package: ‘dplyr’
The following objects are masked from ‘package:igraph’:
as_data_frame, groups, union
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
# Listando as funções do pacote
ls("package:dplyr")
[1] "%>%" "across" "add_count"
[4] "add_count_" "add_row" "add_rownames"
[7] "add_tally" "add_tally_" "all_equal"
[10] "all_of" "all_vars" "anti_join"
[13] "any_of" "any_vars" "arrange"
[16] "arrange_" "arrange_all" "arrange_at"
[19] "arrange_if" "as.tbl" "as_data_frame"
[22] "as_label" "as_tibble" "auto_copy"
[25] "band_instruments" "band_instruments2" "band_members"
[28] "bench_tbls" "between" "bind_cols"
[31] "bind_rows" "c_across" "case_match"
[34] "case_when" "changes" "check_dbplyr"
[37] "coalesce" "collapse" "collect"
[40] "combine" "common_by" "compare_tbls"
[43] "compare_tbls2" "compute" "consecutive_id"
[46] "contains" "copy_to" "count"
[49] "count_" "cross_join" "cumall"
[52] "cumany" "cume_dist" "cummean"
[55] "cur_column" "cur_data" "cur_data_all"
[58] "cur_group" "cur_group_id" "cur_group_rows"
[61] "current_vars" "data_frame" "db_analyze"
[64] "db_begin" "db_commit" "db_create_index"
[67] "db_create_indexes" "db_create_table" "db_data_type"
[70] "db_desc" "db_drop_table" "db_explain"
[73] "db_has_table" "db_insert_into" "db_list_tables"
[76] "db_query_fields" "db_query_rows" "db_rollback"
[79] "db_save_query" "db_write_table" "dense_rank"
[82] "desc" "dim_desc" "distinct"
[85] "distinct_" "distinct_all" "distinct_at"
[88] "distinct_if" "distinct_prepare" "do"
[91] "do_" "dplyr_col_modify" "dplyr_reconstruct"
[94] "dplyr_row_slice" "ends_with" "enexpr"
[97] "enexprs" "enquo" "enquos"
[100] "ensym" "ensyms" "eval_tbls"
[103] "eval_tbls2" "everything" "explain"
[106] "expr" "failwith" "filter"
[109] "filter_" "filter_all" "filter_at"
[112] "filter_if" "first" "full_join"
[115] "funs" "funs_" "glimpse"
[118] "group_by" "group_by_" "group_by_all"
[121] "group_by_at" "group_by_drop_default" "group_by_if"
[124] "group_by_prepare" "group_cols" "group_data"
[127] "group_indices" "group_indices_" "group_keys"
[130] "group_map" "group_modify" "group_nest"
[133] "group_rows" "group_size" "group_split"
[136] "group_trim" "group_vars" "group_walk"
[139] "grouped_df" "groups" "id"
[142] "ident" "if_all" "if_any"
[145] "if_else" "inner_join" "intersect"
[148] "is.grouped_df" "is.src" "is.tbl"
[151] "is_grouped_df" "join_by" "lag"
[154] "last" "last_col" "last_dplyr_warnings"
[157] "lead" "left_join" "location"
[160] "lst" "make_tbl" "matches"
[163] "min_rank" "mutate" "mutate_"
[166] "mutate_all" "mutate_at" "mutate_each"
[169] "mutate_each_" "mutate_if" "n"
[172] "n_distinct" "n_groups" "na_if"
[175] "near" "nest_by" "nest_join"
[178] "new_grouped_df" "new_rowwise_df" "nth"
[181] "ntile" "num_range" "one_of"
[184] "order_by" "percent_rank" "pick"
[187] "progress_estimated" "pull" "quo"
[190] "quo_name" "quos" "recode"
[193] "recode_factor" "reframe" "relocate"
[196] "rename" "rename_" "rename_all"
[199] "rename_at" "rename_if" "rename_vars"
[202] "rename_vars_" "rename_with" "right_join"
[205] "row_number" "rows_append" "rows_delete"
[208] "rows_insert" "rows_patch" "rows_update"
[211] "rows_upsert" "rowwise" "same_src"
[214] "sample_frac" "sample_n" "select"
[217] "select_" "select_all" "select_at"
[220] "select_if" "select_var" "select_vars"
[223] "select_vars_" "semi_join" "setdiff"
[226] "setequal" "show_query" "slice"
[229] "slice_" "slice_head" "slice_max"
[232] "slice_min" "slice_sample" "slice_tail"
[235] "sql" "sql_escape_ident" "sql_escape_string"
[238] "sql_join" "sql_select" "sql_semi_join"
[241] "sql_set_op" "sql_subquery" "sql_translate_env"
[244] "src" "src_df" "src_local"
[247] "src_mysql" "src_postgres" "src_sqlite"
[250] "src_tbls" "starts_with" "starwars"
[253] "storms" "summarise" "summarise_"
[256] "summarise_all" "summarise_at" "summarise_each"
[259] "summarise_each_" "summarise_if" "summarize"
[262] "summarize_" "summarize_all" "summarize_at"
[265] "summarize_each" "summarize_each_" "summarize_if"
[268] "sym" "symdiff" "syms"
[271] "tally" "tally_" "tbl"
[274] "tbl_df" "tbl_nongroup_vars" "tbl_ptype"
[277] "tbl_vars" "tibble" "top_frac"
[280] "top_n" "transmute" "transmute_"
[283] "transmute_all" "transmute_at" "transmute_if"
[286] "tribble" "type_sum" "ungroup"
[289] "union" "union_all" "validate_grouped_df"
[292] "validate_rowwise_df" "vars" "where"
[295] "with_groups" "with_order" "wrap_dbplyr_obj"
# Obtendo ajuda sobre uma função específica do pacote
?mutate
# Listando as versões instaladas do pacote
packageVersion("dplyr")
[1] ‘1.1.2’
# Verificando dependências do pacote
packageDescription("tidyverse")
Package: tidyverse
Title: Easily Install and Load the 'Tidyverse'
Version: 2.0.0
Authors@R: c( person("Hadley", "Wickham", , "hadley@rstudio.com", role =
c("aut", "cre")), person("RStudio", role = c("cph", "fnd")) )
Description: The 'tidyverse' is a set of packages that work in harmony
because they share common data representations and 'API' design.
This package is designed to make it easy to install and load
multiple 'tidyverse' packages in a single step. Learn more about
the 'tidyverse' at <https://www.tidyverse.org>.
License: MIT + file LICENSE
URL: https://tidyverse.tidyverse.org,
https://github.com/tidyverse/tidyverse
BugReports: https://github.com/tidyverse/tidyverse/issues
Depends: R (>= 3.3)
Imports: broom (>= 1.0.3), conflicted (>= 1.2.0), cli (>= 3.6.0), dbplyr
(>= 2.3.0), dplyr (>= 1.1.0), dtplyr (>= 1.2.2), forcats (>=
1.0.0), ggplot2 (>= 3.4.1), googledrive (>= 2.0.0), googlesheets4
(>= 1.0.1), haven (>= 2.5.1), hms (>= 1.1.2), httr (>= 1.4.4),
jsonlite (>= 1.8.4), lubridate (>= 1.9.2), magrittr (>= 2.0.3),
modelr (>= 0.1.10), pillar (>= 1.8.1), purrr (>= 1.0.1), ragg (>=
1.2.5), readr (>= 2.1.4), readxl (>= 1.4.2), reprex (>= 2.0.2),
rlang (>= 1.0.6), rstudioapi (>= 0.14), rvest (>= 1.0.3), stringr
(>= 1.5.0), tibble (>= 3.1.8), tidyr (>= 1.3.0), xml2 (>= 1.3.3)
Suggests: covr (>= 3.6.1), feather (>= 0.3.5), glue (>= 1.6.2), mockr (>=
0.2.0), knitr (>= 1.41), rmarkdown (>= 2.20), testthat (>= 3.1.6)
VignetteBuilder: knitr
Config/Needs/website: tidyverse/tidytemplate
Config/testthat/edition: 3
Encoding: UTF-8
RoxygenNote: 7.2.3
NeedsCompilation: no
Packaged: 2023-02-21 13:20:46 UTC; hadleywickham
Author: Hadley Wickham [aut, cre], RStudio [cph, fnd]
Maintainer: Hadley Wickham <hadley@rstudio.com>
Repository: CRAN
Date/Publication: 2023-02-22 09:20:06 UTC
Built: R 4.2.3; ; 2023-03-19 18:23:46 UTC; windows
-- File: C:/Program Files/R/R-4.2.2/library/tidyverse/Meta/package.rds
# Obtendo informações gerais sobre o pacote
packageDescription("dplyr", fields = c("Title", "Description", "Author", "License"))
Title: A Grammar of Data Manipulation
Description: A fast, consistent tool for working with data frame like
objects, both in memory and out of memory.
Author: Hadley Wickham [aut, cre]
(<https://orcid.org/0000-0003-4757-117X>), Romain François [aut]
(<https://orcid.org/0000-0002-2444-4226>), Lionel Henry [aut],
Kirill Müller [aut] (<https://orcid.org/0000-0002-1416-3412>),
Davis Vaughan [aut] (<https://orcid.org/0000-0003-4777-038X>),
Posit Software, PBC [cph, fnd]
License: MIT + file LICENSE
-- File: C:/Users/C358423/AppData/Local/R/win-library/4.2/dplyr/Meta/package.rds
-- Fields read: Title, Description, Author, License
#Obtendo referencias de um pacote
citation("dplyr")
To cite package ‘dplyr’ in publications use:
Wickham H, François R, Henry L, Müller K, Vaughan D (2023). _dplyr: A
Grammar of Data Manipulation_. R package version 1.1.2,
<https://CRAN.R-project.org/package=dplyr>.
A BibTeX entry for LaTeX users is
@Manual{,
title = {dplyr: A Grammar of Data Manipulation},
author = {Hadley Wickham and Romain François and Lionel Henry and Kirill Müller and Davis Vaughan},
year = {2023},
note = {R package version 1.1.2},
url = {https://CRAN.R-project.org/package=dplyr},
}
##Importação de dados - Files
library(readr)
dataset2_aulaR <- read_csv("dataset2_aulaR.csv",
locale = locale(encoding = "ASCII"))
Rows: 5444 Columns: 112── Column specification ───────────────────────────────────────────────────────────
Delimiter: ","
chr (2): NOME, UF
dbl (110): FID, COD_IBGE, POPTOTAL, POPHOMENS, POPMULHERE, POPURBANA, POPRURAL,...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(dataset2_aulaR)
write.csv(df,"teste.csv")
read.csv("teste.csv")
library(rbcb)
Warning: package ‘rbcb’ was built under R version 4.2.3
library(ggplot2)
ipca = get_series(433)
ggplot(ipca, aes(x=date))+
geom_line(aes(y=ipca$`433`), col='darkblue')
ipeadata("ANDA12_MFERTILIZ12")
Warning: URL 'http://www.ipeadata.gov.br/api/odata4/ValoresSerie(SERCODIGO='ANDA12_MFERTILIZ12')': Timeout of 60 seconds was reached
ERROR : cannot open the connection to 'http://www.ipeadata.gov.br/api/odata4/ValoresSerie(SERCODIGO='ANDA12_MFERTILIZ12')'
Outras opções de pacote? - Rsincofi - SidraR
# Instale o tidyverse caso ainda não tenha feito
# install.packages("tidyverse")
# Carregue o tidyverse
library(tidyverse)
Warning: package ‘tidyverse’ was built under R version 4.2.3Warning: package ‘tibble’ was built under R version 4.2.3Warning: package ‘tidyr’ was built under R version 4.2.3Warning: package ‘purrr’ was built under R version 4.2.3Warning: package ‘forcats’ was built under R version 4.2.3Warning: package ‘lubridate’ was built under R version 4.2.3── Attaching core tidyverse packages ─────────────────────────── tidyverse 2.0.0 ──
✔ forcats 1.0.0 ✔ stringr 1.5.0
✔ lubridate 1.9.2 ✔ tibble 3.2.0
✔ purrr 1.0.1 ✔ tidyr 1.3.0── Conflicts ───────────────────────────────────────────── tidyverse_conflicts() ──
✖ lubridate::%--%() masks igraph::%--%()
✖ tibble::as_data_frame() masks dplyr::as_data_frame(), igraph::as_data_frame()
✖ purrr::compose() masks igraph::compose()
✖ tidyr::crossing() masks igraph::crossing()
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
✖ purrr::simplify() masks igraph::simplify()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
# Carregue um conjunto de dados de exemplo do pacote ggplot2
data(diamonds, package = "ggplot2")
diamonds
# Função filter(): filtra observações de acordo com uma condição
# Exemplo: selecionar diamantes com preço maior que 5000 e quilates maior que 2.5
diamonds %>%
filter(price > 5000, carat > 2.5)
NA
# Função select(): seleciona variáveis
# Exemplo: selecionar apenas as variáveis preço, quilates e corte
diamonds %>%
select(price, carat, cut)
NA
# Função arrange(): ordena as observações de acordo com uma ou mais variáveis
# Exemplo: ordenar diamantes por preço, em ordem decrescente
diamonds %>%
arrange(desc(price))
NA
# Função mutate(): cria ou modifica variáveis
# Exemplo: criar uma nova variável com o preço por quilate de cada diamante
diamonds %>%
mutate(price_per_carat = price / carat)
NA
# Função group_by() e summarize(): agrupa observações e calcula estatísticas resumidas para cada grupo
# Exemplo: calcular a média do preço para cada corte de diamante
diamonds %>%
group_by(cut) %>%
summarize(mean_price = mean(price))
NA
# Função join(): combina diferentes conjuntos de dados
# Exemplo: juntar os conjuntos de dados diamonds e uma função usando a variável "carat"
fator_nacional <- data.frame(color = unique(diamonds$color),
correcao = runif(7,0.3,1.5))
fator_nacional
diamonds_cutlet <- diamonds %>%
left_join(fator_nacional, by = "color")
diamonds_cutlet %>% mutate(n_price=price*correcao) %>% select(n_price,price)
library(tidyr)
# Exemplo de um conjunto de dados em formato "wide"
dados_wide <- data.frame(
pessoa = c("Alice", "Bob", "Carol"),
sexo = c("F", "M", "F"),
idade = c(25, 30, 35),
pontuacao_1 = c(70, 80, 90),
pontuacao_2 = c(60, 70, 80)
)
dados_wide
# Criando um vetor com dados
dados <- c(10, 15, 18, 20, 23, 30, 40, 50)
# Criando uma nova variável que indica se o valor é maior que 20
dados$maior20 <- ifelse(dados > 20, "Sim", "Não")
Warning: Coercing LHS to a list
# Visualizando a nova variável
dados$maior20
[1] "Não" "Não" "Não" "Não" "Sim" "Sim" "Sim" "Sim"
# Exemplo de um conjunto de dados em formato "long"
dados_long <- dados_wide %>%
pivot_longer(
cols = starts_with("pontuacao"), # colunas que serão empilhadas
names_to = "pontuacao", # nome da nova coluna que conterá os nomes das colunas originais empilhadas
values_to = "valor" # nome da nova coluna que conterá os valores das colunas originais empilhadas
)
dados_long
# Exemplo de um conjunto de dados em formato "wide" obtido a partir do conjunto "long"
dados_wide2 <- dados_long %>%
pivot_wider(
names_from = pontuacao, # nome da coluna do conjunto "long" que contém os nomes das colunas originais empilhadas
values_from = valor # nome da coluna do conjunto "long" que contém os valores das colunas originais empilhadas
)
dados_wide2
#Desafio: use a base do exercicio para fazer um empilhamento de colunas.
income<-read.csv("dataset3_aulaR.csv")
# Importando a biblioteca ggplot2
library(ggplot2)
# Criando um dataframe de exemplo
dados <- data.frame(
grupo = c(rep("A", 6), rep("B", 6)),
variavel1 = c(1, 5, 8, 5, 1, 18,
18, 11, 12, 1, 4, 10),
variavel2 = c(0.2, 0.5, 0.8, 0.1, 0.6, 0.9,
0.1, 0.2, 0.3, 0.2, 1.6, 1.9),
variavel3 = factor(c("sim", "nao", "sim", "sim", "nao", "nao",
"sim", "nao", "sim", "sim", "nao", "nao"))
)
dados
# Gráfico de barras para variáveis categóricas
ggplot(dados, aes(x = grupo, y = variavel1, fill = grupo)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Gráfico de barras", x = "Grupo", y = "Variável 1")
# Gráfico de pontos para variáveis numéricas contínuas
ggplot(dados, aes(x = variavel2, y = variavel1)) +
geom_point() +
labs(title = "Gráfico de pontos", x = "Variável 2", y = "Variável 1")
# Gráfico de caixas para variáveis numéricas discretas ou categóricas
ggplot(dados, aes(x = variavel3, y = variavel1, fill = variavel3)) +
geom_boxplot() +
labs(title = "Gráfico de caixas", x = "Variável 3", y = "Variável 1")
# Gráfico de dispersão com regressão para relação entre variáveis
ggplot(dados, aes(x = variavel1, y = variavel2)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "Gráfico de dispersão com regressão", x = "Variável 1", y = "Variável 2")
# Gráfico de dispersão com regressão para relação entre variáveis
ggplot(dados, aes(x = variavel1, y = variavel2, col=grupo)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "Gráfico de dispersão com regressão", x = "Variável 1", y = "Variável 2")
library(siconfir)
# Orçamento do Estado de São Paulo
SP_orc<-get_annual_acc(year = 2016:2019, cod = 35)
summary(SP_orc)
SP_orc$instituicao %>% unique()
SP_orc$anexo %>% unique()
SP_orc$rotulo %>% unique()
SP_orc$coluna %>% unique()
SP_orc$conta %>% unique() %>% length()
SP_orc_E<-SP_orc %>% filter(anexo=="DCA-Anexo I-E")
SP_orc_E$anexo %>% unique()
SP_orc_E$rotulo %>% unique()
SP_orc_E$coluna %>% unique()
SP_orc_E$conta %>% unique() %>% length()