IME/UFBA - OBEC
R com versão pelo menos 4.1: cran.r-project.org.tidyverse e o pacote datacult:
install.packages("tidyverse")install.packages("datacult")R: REditorSupport.RO nome de um objeto precisa ter um significado. O nome deve indicar e deixar claro o que este objeto é ou faz.
R:
R. Por exemplo: c.(). Exceção: Coloque um espaço antes e depois de () quando usar if, for ou while.+, -, *, == e outros. Exceção: ^.Para mais detalhes, consulte: guia de estilo do tidyverse.
Mantenha uma estrutura (organização) consistente de diretórios em seus projetos.
dados: diretório para armazenar seus conjuntos de dados.
brutos: dados brutos.processados: dados processados.codigo_fonte: código fonte do seu projeto.figuras: figuras criadas no seu projeto.output: outros arquivos que não são figuras.legado: arquivos da versão anterior do projeto.notas: notas de reuniões e afins.relatorio (ou artigos): documento final de seu projeto.documentos: livros, artigos e qualquer coisa que são referências em seu projeto.Para mais detalhes, consulte esse guia do curso-r: diretórios e .Rproj.
RRR: S.R é uma linguagem derivada do S.S foi desenvolvido em fortran por John Chambers em 1976 no Bell Labs.S foi desenvolvido para ser um ambiente de análise estatística.S: permitir que usuários possam analisar dados usando estatística com pouco conhecimento de programação.RR na Nova Zelândia.R sob a licença “GNU General License”, o que tornou o R um software livre.R.RR.R for Data Science.R.Depois desse curso, comece por aqui: R for Data Science.
R:Error in log("G"): non-numeric argument to mathematical functionQual o resultado das seguintes operações?
RPacotes precisam estar instalados
pacmanpacman carrega os pacotespacman instala e depois carrega os pacotesRFunção: é uma ação e tem os seguinte componentes na ordem:
\[ \texttt{resultado <- } \overbrace{\texttt{nome_funcao}}^{\textit{nome da função}} \overbrace{(}^{\textit{parênteses}} \overbrace{\texttt{valor1},\quad \texttt{valor2}}^{\textit{argumentos posicionais}},\quad \overbrace{\texttt{nome1 = valor3},\quad \texttt{nome2 = valor4}}^{\textit{argumentos nomeados}} \overbrace{)}^{\textit{parênteses}} \]
Rmean usando a função help.log.pnab-capitais.xlsx (está na pasta dados/brutos/) usando a função read_xlsx.A função read_xlsx faz parte do readxl.
Rcharacter), número real (double), número inteiro (integer), número complexo (complex) e lógico (logical).vector (a estrutura de dados mais básica no R), matrix, array, list e data.frame (tibble no tidyverse).vector, matrix e array.list e data.frame (tibble no tidyverse).Neste curso, vamos usar vetores e dataframes.
c(...)primeiro_numero_inteiro:ultimo_numero_inteiroseq(from = a, to = b, by = c).double, integer e complex): Operações básicas (operação, substração, multiplicação e divisão ) realizada em cada elemento do vetor.Selecionando todos os elementos entre o primeiro e o quinto.
Adição (vetores númericos)
Substração (vetores numéricos)
Realize as seguintes operações envolvendo vetores:
tibble)RRtidy:
tibble: tibble(...) e tribble(....).As funçõestibble e tribble fazem parte do pacote tidyverse.
tibbleCódigo em R |
Descrição |
|---|---|
head() |
Mostra as primeiras linhas de um tibble |
tail() |
Mostra as últimas linhas de um tibble |
glimpse() |
Impressão de informações básicas dos dados |
operador $ |
Recupera uma coluna de dataframe |
Realize as seguintes operações no dataset iris:
irisirisirisSepal.Length de irisiris é toy dataset da linguagem: você pode usá-lo diretamente.
R| Valor | Descrição | O que é | Função para identificar |
|---|---|---|---|
NA |
Not Available | Valor faltante. | is.na() |
NaN |
Not a Number | Resultado do cálculo indefinido. | is.nan() |
Inf |
Infinito | Valor que excede o valor máximo que sua máquina aguenta. | is.inf() |
NULL |
Nulo | Valor indefinido de expressões e funções (diferente de NaN e NA) |
is.null() |
xlsx ou xlsreadxlread_xls: importação de arquivos .xlsread_xlsx: importação de arquivos .xlsxpath: caminho até o arquivo.sheet: especifica a planilha do arquivo que será lida.Para mais detalhes, consulte a documentação: documentação de read_xl.
xlsx ou xlsRows: 87
Columns: 14
$ nome <chr> "Luke Skywalker", "C-3PO", "R2-D2", "Darth Vader", "Le…
$ altura <dbl> 172, 167, 96, 202, 150, 178, 165, 97, 183, 182, 188, 1…
$ massa <dbl> 77.0, 75.0, 32.0, 136.0, 49.0, 120.0, 75.0, 32.0, 84.0…
$ cor_do_cabelo <chr> "Loiro", NA, NA, "Nenhum", "Castanho", "Castanho, Cinz…
$ cor_da_pele <chr> "Branca clara", "Ouro", "Branca, Azul", "Branca", "Cla…
$ cor_dos_olhos <chr> "Azul", "Amarelo", "Vermelho", "Amarelo", "Castanho", …
$ ano_nascimento <dbl> 19.0, 112.0, 33.0, 41.9, 19.0, 52.0, 47.0, NA, 24.0, 5…
$ sexo_biologico <chr> "Macho", "Nenhum", "Nenhum", "Macho", "Fêmea", "Macho"…
$ genero <chr> "Masculino", "Masculino", "Masculino", "Masculino", "F…
$ planeta_natal <chr> "Tatooine", "Tatooine", "Naboo", "Tatooine", "Alderaan…
$ especie <chr> "Humano", "Droide", "Droide", "Humano", "Humano", "Hum…
$ filmes <chr> "A New Hope; The Empire Strikes Back; Return of the Je…
$ veiculos <chr> "Snowspeeder; Imperial Speeder Bike", NA, NA, NA, "Imp…
$ naves_espaciais <chr> "X-wing; Imperial shuttle", NA, NA, "TIE Advanced x1",…
xlsx ou xlspnab-capitais.xlsx na linguagem R sob o nome pnab_capitais.pnab-estados.xlsx na linguagem R sob o nome pnab_estados.csv.csvAs unidades de medidas usadas no Brasil e EUA são diferentes.
| BR | EUA | |
|---|---|---|
| separador decimal | . |
, |
| agrupador de milhar | . |
, |
separador de colunas em arquivos .csv |
; |
, |
csvtidyverseread_csv: importação de arquivos .csv - sistema imperial (EUA)read_csv2: importação de arquivos .csv - sistema métrico (BR)path: caminho até o arquivo.Para mais detalhes, consulte a documentação: documentação.
csvRows: 87
Columns: 14
$ nome <chr> "Luke Skywalker", "C-3PO", "R2-D2", "Darth Vader", "Le…
$ altura <dbl> 172, 167, 96, 202, 150, 178, 165, 97, 183, 182, 188, 1…
$ massa <dbl> 77.0, 75.0, 32.0, 136.0, 49.0, 120.0, 75.0, 32.0, 84.0…
$ cor_do_cabelo <chr> "Loiro", NA, NA, "Nenhum", "Castanho", "Castanho, Cinz…
$ cor_da_pele <chr> "Branca clara", "Ouro", "Branca, Azul", "Branca", "Cla…
$ cor_dos_olhos <chr> "Azul", "Amarelo", "Vermelho", "Amarelo", "Castanho", …
$ ano_nascimento <dbl> 19.0, 112.0, 33.0, 41.9, 19.0, 52.0, 47.0, NA, 24.0, 5…
$ sexo_biologico <chr> "Macho", "Nenhum", "Nenhum", "Macho", "Fêmea", "Macho"…
$ genero <chr> "Masculino", "Masculino", "Masculino", "Masculino", "F…
$ planeta_natal <chr> "Tatooine", "Tatooine", "Naboo", "Tatooine", "Alderaan…
$ especie <chr> "Humano", "Droide", "Droide", "Humano", "Humano", "Hum…
$ filmes <chr> "A New Hope; The Empire Strikes Back; Return of the Je…
$ veiculos <chr> "Snowspeeder; Imperial Speeder Bike", NA, NA, NA, "Imp…
$ naves_espaciais <chr> "X-wing; Imperial shuttle", NA, NA, "TIE Advanced x1",…
Rows: 87
Columns: 14
$ nome <chr> "Luke Skywalker", "C-3PO", "R2-D2", "Darth Vader", "Le…
$ altura <dbl> 172, 167, 96, 202, 150, 178, 165, 97, 183, 182, 188, 1…
$ massa <dbl> 77.0, 75.0, 32.0, 136.0, 49.0, 120.0, 75.0, 32.0, 84.0…
$ cor_do_cabelo <chr> "Loiro", NA, NA, "Nenhum", "Castanho", "Castanho, Cinz…
$ cor_da_pele <chr> "Branca clara", "Ouro", "Branca, Azul", "Branca", "Cla…
$ cor_dos_olhos <chr> "Azul", "Amarelo", "Vermelho", "Amarelo", "Castanho", …
$ ano_nascimento <dbl> 19.0, 112.0, 33.0, 41.9, 19.0, 52.0, 47.0, NA, 24.0, 5…
$ sexo_biologico <chr> "Macho", "Nenhum", "Nenhum", "Macho", "Fêmea", "Macho"…
$ genero <chr> "Masculino", "Masculino", "Masculino", "Masculino", "F…
$ planeta_natal <chr> "Tatooine", "Tatooine", "Naboo", "Tatooine", "Alderaan…
$ especie <chr> "Humano", "Droide", "Droide", "Humano", "Humano", "Hum…
$ filmes <chr> "A New Hope; The Empire Strikes Back; Return of the Je…
$ veiculos <chr> "Snowspeeder; Imperial Speeder Bike", NA, NA, NA, "Imp…
$ naves_espaciais <chr> "X-wing; Imperial shuttle", NA, NA, "TIE Advanced x1",…
csveditais-proprios-capitais-separador-virgula.csv na linguagem R sob o nome editais_proprios_capitais.editais-proprios-estados.csv na linguagem R sob o nome editais_proprios_estados..csv (sistema métrico)write_csv2 é parte do pacote tidyverse.
.xlsxwrite_xlsx é parte do pacote writexl.
iris como uma planilha eletrônica em formato .csv sob o nome iris_novo.cars como uma planilha eletrônica em formato .xlsx sob o nome carros.cars é toy dataset da linguagem: você pode usá-lo diretamente.
|>|>Extensamente usado!
Executar
é exatamente a mesma coisa que executar
é exatamente a mesma coisa que executar
Pesquisa de Fomento às Artes no Brasil.
flowchart TD A[VARIÁVEL] == texto ==> B["`QUALITATIVA`"] A == número ==> C["`QUANTITATIVA`"] B == com ordem ==> D["`ORDINAL`"] D --> H["`Exemplo: <br/> Escala Likert`"] B == sem ordem ==> E["`NOMINAL`"] E --> I["`Exemplo: <br/> UF`"] C == parte decimal ==> F["`CONTÍNUA`"] F --> J["`Exemplo: <br/> Montante do edital `"] C == número inteiro ==> G["`DISCRETA`"] G --> K["`Exemplo: <br/> Número de propostas previstas `"]
Um valor para sintetiza ou representa todos valores.
Distribuição ou homogeneidade dos valores.
| \(X\) | frequência | frequência relativa | porcentagem |
|---|---|---|---|
| \(B_1\) | \(n_1\) | \(f_1=\frac{n_1}{n}\) | \(100 \cdot f_1\%\) |
| \(B_2\) | \(n_2\) | \(f_2=\frac{n_2}{n}\) | \(100 \cdot f_2\%\) |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
| \(B_k\) | \(n_k\) | \(f_k=\frac{n_k}{n}\) | \(100 \cdot f_k\%\) |
| Total | \(n=n_1+\cdots+n_k\) | \(1\) | \(100\%\) |
Rjanitortabyl e adorn_totals
tabyl: calcula a frequência de cada categoriaadorn_total: adiciona uma linha de totalProporção de cidades com plano de cultura.
filter (tidyverse) e semelhante a função FILTER do google planilha. A única diferente é substituição de = por ==.
plano_cultura n percent
Em elaboração 29 0.42028986
Não 3 0.04347826
Sim 37 0.53623188
Total 69 1.00000000
v_3_1) dos editais PNAB publicados pelos estados.regiao).X: variável quantitativa contínua
X |
Frequência | Frequência relativa | Porcentagem |
|---|---|---|---|
| \([l_0, l_1)\) | \(n_1\) | \(f_1 = \frac{n_1}{n}\) | \(p_1 = f_1 \cdot 100\) |
| \([l_1, l_2)\) | \(n_2\) | \(f_2 = \frac{n_2}{n}\) | \(p_2 = f_2 \cdot 100\) |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
| \([l_{k-1}, l_k]\) | \(n_k\) | \(f_k = \frac{n_k}{n}\) | \(p_k = f_k \cdot 100\) |
| total | \(n=n_1+\cdots+n_k\) | \(1\) | \(100\) |
X entre \(l_{i-1}\) e \(l_i\)X (breakpoints).Recomendações:
Robectab_freq_contvariable: nome da variável quantitativa contínuabreaks: não forneça ou forneça o número de faixas ou forneça cada uma das faixaslabels: nome de cada faixa. Por padrão, usa notação matemáticainclude_lowest: menor limite do intervalo é incluído na faixa? Por padrão, TRUE.right: maior limite do intervalo é incluído na faixa? Por padrão, FALSE. n_page n percent
1 a 10 5 0.0462963
10 a 20 14 0.1296296
30 a 40 36 0.3333333
40 a 50 16 0.1481481
50 a 60 13 0.1203704
mais de 60 24 0.2222222
Total 108 1.0000000
v_1_5) dos editais PNAB dos estados usando os intervalos: [0, 250000), [250000, 500000), [500000, 750000), [750000, 1000000), [1000000, 1250000), [1250000, 1500000), [1500000, \(\infty\)).n_page) dos editais com recursos próprios das capitais. Use a Regra de Sturges.dataculttab_freq_checkboxdata: dataframe com os dadoscolumns: colunas com as respostas - uma coluna para cada opçãosucess: categoria indicando o sucesso. Por padrão, é "checked"labels: rótulos - um para cada opçãovariable_name: nome do campo do formuláriorespostas <- read_xlsx("dados/brutos/resposta.xlsx")
respostas <- respostas |>
filter(resposta_completa == "Resposta completa")
tabela <- respostas |>
tab_freq_checkbox(
columns = c("linguagens_orgao___1", "linguagens_orgao___2",
"linguagens_orgao___3", "linguagens_orgao___4",
"linguagens_orgao___5", "linguagens_orgao___6",
"linguagens_orgao___7", "linguagens_orgao___8"),
sucess = "Checked"
)
tabela# A tibble: 8 × 3
coluna n percent
<chr> <dbl> <dbl>
1 linguagens_orgao___1 87 0.906
2 linguagens_orgao___2 85 0.885
3 linguagens_orgao___3 70 0.729
4 linguagens_orgao___4 91 0.948
5 linguagens_orgao___5 90 0.938
6 linguagens_orgao___6 90 0.938
7 linguagens_orgao___7 86 0.896
8 linguagens_orgao___8 48 0.5
v_1_10) permitida para as/os proponentes nos editais PNAB para estados.v_2_1) prevista nos editais com recursos próprios das capitais.Quantil de ordem de 10% para os editais PNAB dos estados.
Quantil de ordem de 90% para os editais PNAB dos estados.
Interpretação de média.
Mediana.
Rsummarise: semelhante a tabela dinâmica do Google Planilhagroup_by: semelhante as opções linhas ou colunas da tabela dinâmica do Google PlanilhaAs funções disponíveis para usar com summarise estão na Tabela 1.
summarise.
| Descrição da função | Função na linguagem R |
Classificação | Pacote de origem |
|---|---|---|---|
| Máximo | max |
Outras | base |
| Mínimo | min |
Outras | base |
| Desvio padrão | sd |
Posição | base |
| Quantil (quartil e percentil) | quantile |
Posição | base |
| Intervalo interquartílico | IQR |
Dispersão | base |
| Mediana | median |
Posição | base |
| Média | mean |
Posição | base |
| Número de observações | n |
Outras | tidyverse |
| Número de observações faltantes | n_missing |
Outras | datacult |
| Número de observações não faltantes | n_no_missing |
Outras | datacult |
pnab_estados <- read_xlsx("dados/brutos/pnab-estados.xlsx")
tabela_resumo <- pnab_estados |>
summarise(
media = mean(v_1_5), mediana = median(v_1_5),
desv_pad = sd(v_1_5), q1 = quantile(v_1_5, probs = 0.25),
n = n(), n_missing = n_missing(v_1_5),
n_no_missing = n_no_missing(v_1_5), iqr = IQR(v_1_5),
min = min(v_1_5), max = max(v_1_5)
)
tabela_resumo# A tibble: 1 × 10
media mediana desv_pad q1 n n_missing n_no_missing iqr min max
<dbl> <dbl> <dbl> <dbl> <int> <int> <int> <dbl> <dbl> <dbl>
1 3995006. 2000000 6129413. 1e6 314 0 314 3e6 1e5 4e7
group_bypnab_estados <- read_xlsx("dados/brutos/pnab-estados.xlsx")
tabela_resumo <- pnab_estados |>
group_by(regiao) |>
summarise(
media = mean(v_1_5), mediana = median(v_1_5),
desv_pad = sd(v_1_5), q1 = quantile(v_1_5, probs = 0.25),
n = n(), n_missing = n_missing(v_1_5),
n_no_missing = n_no_missing(v_1_5), iqr = IQR(v_1_5),
min = min(v_1_5), max = max(v_1_5)
)
tabela_resumoregiao.
# A tibble: 5 × 11
regiao media mediana desv_pad q1 n n_missing n_no_missing iqr
<chr> <dbl> <dbl> <dbl> <dbl> <int> <int> <int> <dbl>
1 Centro Oes… 1.78e6 1 e6 3522818. 4.25e5 51 0 51 1.32e6
2 Nordeste 2.90e6 1.42e6 4364848. 9.05e5 114 0 114 1.74e6
3 Norte 2.96e6 2 e6 3740640. 1.09e6 48 0 48 1.75e6
4 Sudeste 6.57e6 3 e6 8497231. 1.7 e6 83 0 83 5.18e6
5 Sul 8.07e6 6.64e6 8127590. 3.47e6 18 0 18 5.16e6
# ℹ 2 more variables: min <dbl>, max <dbl>
Calcule a média, a mediana, o intervalo interquartílico, o primeiro quartil, o terceiro quartil, o desvio padrão, o mínimo e o máximo para cada uma das variáveis abaixo:
v_1_5) para os editais com recursos próprios dos estados.v_1_5) para os editais PNAB dos estados e calcule as medidas de resumo pela abrangência do edital (v_3_1).Rggplot2ggplot(dados, x = var1, y = var2), e vamos adicionando as camadas de anotações, e sumários estatísticos.ggplot2.Para mais detalhes, você pode consultar ggplot2: elegant graphics for data analysis e documentação do ggplot2
datacultbar_chartdata: dataframe com os dados.variable: variável qualitativa ou quantitativa discreta.axis_title: rótulo do eixo y.fill: cor da barra. Por padrão, "blue".axis_title_axis_size: tamanho da fonte dos rótulos dos eixos. Por padrão, 22.axis_text_axis_size: tamanho da fonte nos eixos. Por padrão, 22.data_label_size: tamanho da fonte para os rótulos dos dados. Por padrão, 15.sort: barras devem estar ordenadas pela frequência? Por padrão, TRUE.bar_chart faz parte do pacote datacult.
xlim modifica o menor value e maior valor do eixo x.
obecbar_chart_checkboxdata: dataframe com os dadoscolumns: colunas com as respostas - uma coluna para cada opçãosucess: categoria indicando o sucesso. Por padrão, é "checked"labels: rótulos - um para cada opçãoaxis_title: rótulo do eixo y.fill: cor da barra. Por padrão, "blue".axis_title_axis_size: tamanho da fonte dos rótulos dos eixos. Por padrão, 22.axis_text_axis_size: tamanho da fonte nos eixos. Por padrão, 22.data_label_size: tamanho da fonte para os rótulos dos dados. Por padrão, 15.sort: barras devem estar ordenadas pela frequência? Por padrão, TRUE.paste0("linguagens_orgao__", 1:8) resulta no vetor c(linguagens_orgao__1, linguagens_orgao__2, linguagens_orgao__3, linguagens_orgao__4, linguagens_orgao__5, linguagens_orgao__6, linguagens_orgao__7, linguagens_orgao__8)
v_3_1) para os chamamentos públicos com recursos próprios das capitais.v_1_10) para os editais PNAB das capitais.ggplot2+* é uma das diversas figuras disponíveis.
Aqui mudamos os rótulos dos eixos, o tamanho das fontes, o tema da figura entre outros.
labs modifica os rótulos do gráfico.
bins: número de faixasbreaks: os valores que delimitam as faixasbinwidth: largura de faixaclosed: "left" ou "right" - texto indicando se o valor da esquerda ou da direita são inclusos na contagemRPadrão:
Usando para constuir sina e gráfico de densidade.
pnab_capitais <- read_xlsx("dados/brutos/pnab-capitais.xlsx")
p_load(ggeasy, ggthemes)
ggplot(pnab_capitais, aes(x = n_page)) +
geom_histogram(binwidth = 20, closed = "left", fill = "blue") +
labs(x = "Número de páginas", y = "Frequência") +
theme_gdocs() +
easy_all_text_size(size = 22)
ggsave('figuras/histograma.png')
ggsave('figuras/histograma.svg')ggeasy: pacote para modificar o tamanho da fonte nos eixos, e ggthemes: adiciona temas pré-definidos ao ggplot2.
labs: função que modifica os rótulos dos eixos.
theme_gdocs: função que modifica os aspectos de design da figura para produzir uma imagem com cara de gráfico do Google Planilha. Este tema está no pacote ggthemes.
easy_all_text_size: modifica o tamanho da fonte para os textos da figura. Função do pacote ggeasy.
histograma.png na pasta figuras.
histograma.svg na pasta figuras.
v_1_5) dos editais PNAB dos estados. Use a regra de Sturge.n_page) dos editais com recursos próprios dos estados. Use faixa de 20 páginas.Em português: diagrama de caixa.
Rcolor modifica o desenho (contorno) da figura e fill modifica o preenchimento da figura.
labs: função que modifica os rótulos dos eixos.
theme_gdocs: função que modifica os aspectos de design da figura para produzir uma imagem com cara de gráfico do Google Planilha. Este tema está no pacote ggthemes.
easy_all_text_size: modifica o tamanho da fonte para os textos da figura. Função do pacote ggeasy.
Boxplot de n_page por regiao.
v_1_5) dos editais PNAB dos estados.n_page) dos editais com recursos próprios dos estados.v_1_5) dos editais PNAB dos estados por região (regiao).n_page) dos editais com recursos próprios dos estados por região (regiao).Rgeom_violin - ggplot2.geom_sina - ggforce.geom_sina é uma função do pacote ggforce.
v_1_5) dos editais PNAB dos estados.n_page) dos editais com recursos próprios dos estados.v_1_5) dos editais PNAB dos estados por região (regiao).n_page) dos editais com recursos próprios dos estados por região (regiao).IME/UFBA
OBEC