[1] 5
[1] 1024
[1] 12
[1] 1
[1] 2
Aula 01 · Introdução à Linguagem R
PPG em Ecologia e Conservação · UFMS
ggplot2Um único trabalho final: um documento Quarto (ou R Markdown) compilado em .html ou .pdf, com um fluxo de análise completo seguindo o tidyverse.
Não há prova escrita. A nota é um documento que compila — se ele roda na minha máquina a partir do que você entregou, a maior parte do trabalho está feita.
Cada dia acrescenta uma camada ao mesmo trabalho:
| Dia | O que entra no seu documento |
|---|---|
| Segunda | o Projeto criado, os dados importados |
| Terça | tudo versionado no git; dados limpos com dplyr |
| Quarta | os gráficos e o modelo |
| Quinta | o texto em volta, e o documento compilado |
Ou seja: na quinta-feira vocês não começam o trabalho — vocês terminam o que vêm fazendo desde hoje de manhã.
Manhã
Tarde
Manhã
Tarde
tidyversesummarize(), group_by(), o operador pipeManhã
ggplot2Tarde
tidyverse e modelos linearesQuinta, manhã
Quinta, tarde
Sexta, manhã
Este site — slides, scripts e dados de todas as aulas:
Moodle da UFMS — quizzes, entregas e avaliações da turma:
A chave de inscrição do Moodle eu passo em aula.
O argumento decisivo aparece na quinta-feira: análise feita clicando em menu não pode ser auditada nem repetida. O script é a receita.
“For students entering my lab, I place a premium on quantitative skills, intellectual creativity, hard work, and independence.”
“What kinds of skills do you need for success in community ecology? You should invest the time in learning a programming/statistical language… R is the language that I recommend… there is no better (or more enjoyable) way to learn about statistics and ecological theory than by programming.”
Nicholas J. Gotelli, University of Vermont — Information for Prospective Graduate Students
Instale nessa ordem: primeiro o R, depois o RStudio.
A empresa que faz o RStudio mudou de nome para Posit em 2022. Você vai encontrar os dois nomes na internet — é a mesma coisa.
Resumos de uma ou duas páginas, por pacote. Vale imprimir as do dplyr e do ggplot2 já na segunda-feira.
opensource.posit.co/resources/cheatsheets
Há versões em português de algumas delas, feitas pela comunidade.
Help → Cheat Sheets — as principais já vêm instaladas.

Dá para rodar R no navegador, sem instalar nada:
Serve para a primeira hora e para emergências. Não serve para o curso: a partir de amanhã vocês precisam dos arquivos na própria máquina.
| Painel | Onde fica | Para que serve |
|---|---|---|
| Source | acima, à esquerda | onde você escreve o script |
| Console | abaixo, à esquerda | onde o R executa |
| Environment | acima, à direita | os objetos que existem agora |
| Files / Plots / Help | abaixo, à direita | arquivos, gráficos, ajuda |
A regra do curso: escreva no Source, não no Console. O console esquece; o script fica.
O seu vai estar vazio — e claro em vez de escuro, até mexerem em Tools → Global Options → Appearance.

File → New Project… e escolha:
Por que isso importa tanto que abre o curso: o Projeto define o diretório de trabalho sozinho, e o script deixa de depender de onde a pasta está. Voltamos nisso à tarde, com here().
Version Control é como vocês vão clonar o repositório da disciplina na terça.

O canto superior direito mostra o projeto aberto — e lista os outros. Cada um abre com sessão, histórico e arquivos próprios.

Tab. Funciona para funções, argumentos, nomes de objetos e caminhos de arquivofun e Tab para o esqueleto de uma funçãoEsta parte acompanha o capítulo 4 de Análises Ecológicas no R.
Leiam em casa o que não der tempo de ver aqui.
[1] 5
[1] 1024
[1] 12
[1] 1
[1] 2
O prompt > espera um comando novo. O prompt + significa que o R está esperando você terminar o comando anterior — quase sempre um parêntese ou uma aspa que faltou fechar.
<-, não =. Os dois funcionam, mas <- é a convenção e evita confusão com os argumentos de funçãoAlt + - (Windows/Linux) ou Option + - (Mac)A organização é mais simples do que parece — são duas perguntas: quantas dimensões? e todos os elementos do mesmo tipo?
| Homogêneo | Heterogêneo | |
|---|---|---|
| 1 dimensão | vetor | lista |
| 2 dimensões | matriz | data frame |
| n dimensões | array | — |
O data frame é o formato dos seus dados de campo: cada coluna pode ser de um tipo diferente. É com ele que vocês vão trabalhar a semana inteira.
digraph vetores {
bgcolor="transparent"; rankdir=TB; ranksep=0.35; nodesep=0.3;
node [shape=box style="rounded,filled" fillcolor="#f3eee3" color="#1c6e8c"
fontname="Helvetica" fontsize=20 margin="0.22,0.12"];
edge [color="#8a8375" arrowhead=none];
V [label="Vetor" shape=ellipse fillcolor="#e3dccd"];
AT [label="Vetor atômico\ntodos do mesmo tipo"];
LI [label="Lista\npode misturar tipos"];
LOG [label="logical\nTRUE / FALSE"];
NUM [label="numeric"];
CHR [label="character\n\"texto\""];
INT [label="integer\n1L"];
DBL [label="double\n1.5"];
V -> AT; V -> LI;
AT -> LOG; AT -> NUM; AT -> CHR;
NUM -> INT; NUM -> DBL;
}Estrutura adaptada de Advanced R, de Hadley Wickham.
Um vetor atômico só guarda um tipo. Se você misturar, o R converte tudo para o tipo mais permissivo — em silêncio.
É por isso que uma planilha com "sem dados" no meio de uma coluna numérica transforma a coluna inteira em texto. Guardem isso para a aula da tarde.
O que ler, em ordem de utilidade:
Na sexta-feira falamos de como usar LLMs para isso — e do que conferir antes de acreditar na resposta.
install.packages() baixa; library() carregainstall.packages() nunca vai dentro de um script que você compartilha — ele mexe na máquina de quem rodarBovo, R.P.; Simon, M.N.; Provete, D.B.; Lyra, M.; Navas, C.A.; Andrade, D.V. (2023). Beyond Janzen’s Hypothesis: How Amphibians That Climb Tropical Mountains Respond to Climate Variation. Integrative Organismal Biology 5(1): obad009. doi:10.1093/iob/obad009
225 indivíduos, 5 espécies de anuros, 6 altitudes, 2 serras da Mata Atlântica. Limites térmicos, perda de água, massa e clima de cada sítio.
Dados reais, publicados, com os problemas que dados reais têm. É o mesmo arquivo de hoje até sexta-feira.
intro-r.Rproj
dados/
anuros_altitude.csv <- baixe da página da aula
processados/ <- o que o seu script produzir
scripts/
aula-01.R
figuras/
Tudo o que vem depois supõe essa estrutura. Cinco minutos agora economizam a semana inteira.
Existe também read.csv(file.choose()), que abre uma janela para você escolher o arquivo. Evitem.
Um caminho escrito no script roda de novo sozinho. Uma janela exige que alguém esteja ali para clicar — e ninguém sabe o que foi clicado da última vez.
Antes de qualquer análise, sempre estes quatro:
str() mostra'data.frame': 225 obs. of 8 variables:
$ ID : chr "RPB 41" "RPB 42" "RPB 69" "RPB 114" ...
$ Species : chr "Rhinella icterica" "Rhinella icterica" "Rhinella icterica" "Rhinella icterica" ...
$ Sex : chr "Male" "Male" NA "Male" ...
$ EWL_Ugcm2s1 : num 1.97 2.08 2.77 1.52 1.45 ...
$ WU_Ugcm2s1 : num 93.1 55.3 54 78 77.7 ...
$ perc_hidration_after_EWL: num 99.5 99.5 99.2 94.3 96 ...
$ Bodymass_g : num 218.9 233.1 63.6 85 207.2 ...
$ CTmin : num 3.4 4.2 3.2 1.8 2 2.8 4 2.8 3.4 1.3 ...
O str() é o mais importante: é onde você descobre que a coluna que deveria ser numérica entrou como texto. Repare em ID e Sex: chr, texto — e está certo. Já EWL_Ugcm2s1 ser num é o que a gente queria ver.
5 minutos — no Source, não no Console
dados/; ponha o anuros_altitude.csv ládadoshead(), str(), dim(), summary()O passo 4 é o que importa. Quem só roda os quatro comandos não viu nada — viu a tela. Vou pedir a resposta de três de vocês.
summary() mostra Bodymass_g CTmin CTmax
Min. : 0.3991 Min. : 0.200 Min. :28.70
1st Qu.: 0.7396 1st Qu.: 3.200 1st Qu.:34.85
Median : 49.0838 Median : 4.100 Median :38.20
Mean : 72.8679 Mean : 4.899 Mean :36.96
3rd Qu.:116.8600 3rd Qu.: 6.700 3rd Qu.:38.88
Max. :373.2300 Max. :11.700 Max. :40.60
NAs :1 NAs :35
CTmax tem 35 NA. CTmin tem 1Nenhum erro, nenhum aviso. Se vocês não tivessem olhado, descobririam esses 35 ausentes só na quarta-feira, quando um modelo disser n = 190.
.csv ou .txt — formatos abertosrow.names = FALSE evita aquela primeira coluna de números sem nomedados/processados/, nunca por cima do brutoAnote, com uma frase cada, o que faz cada função nova desta manhã:
Esse caderninho vale mais que o slide. E na sexta-feira ele vira o seu próprio resumo da disciplina.
