Guia de Sobrevivência ao R

Escolha o que praticar, diagnostique erros e saiba como pedir ajuda em R.

Este guia ajuda a escolher o que praticar, a sair de um bloqueio e a pedir ajuda. Não precisa de o ler de ponta a ponta. Se veio por causa de um erro, salte para o protocolo de debug ou para o troubleshooting rápido.

0 Escolher Um Percurso

Estou a Começar

Se ainda não tem o R, comece pela instalação. Depois abra a introdução ao R e experimente os comandos à medida que os lê. Quando conseguir criar um objecto, usá-lo num cálculo e perceber o resultado, passe aos fundamentos. Não precisa de decorar a lista de funções antes de começar a trabalhar com dados.

Para uma primeira tarefa com uma tabela, siga os data frames e a importação de dados. Escolha dados para praticar na página de dados, em vez de estrear tudo ao mesmo tempo com o ficheiro mais complicado do seu projecto.

Já Usei R, Mas Preciso de Relembrar

Abra os exercícios de um tutorial de programação que lhe pareça familiar e tente resolver um antes de consultar a solução. Se souber o que quer fazer mas não se lembrar da sintaxe, use os fundamentos de R como referência. Se não conseguir explicar o resultado, volte à explicação do tutorial. São dificuldades diferentes e não exigem recomeçar tudo do zero.

Quero Analisar os Meus Dados

Comece por escrever a pergunta e dizer o que representa uma linha do seu ficheiro. Que linhas pertencem à mesma pessoa, animal, tanque ou local? Se ainda não consegue responder, consulte o delineamento da investigação antes de escolher a análise.

Depois de importar os dados, inspeccione-os com descritivas e gráficos. Para comparar médias ou estudar uma relação, siga Modelos Lineares no R: pergunta → modelo → estimativa → comparação → gráfico → interpretação. Mesmo que venha à procura de um teste-t, é por modelos com lm() que trabalhamos aqui; a teoria explica a ligação na comparação de modelos.

Se há medições repetidas da mesma unidade, consulte medidas repetidas; se a resposta é uma proporção ou contagem, veja proporções e contagens. O diagnóstico ajuda a avaliar o modelo, e a escrita científica ajuda a comunicar as estimativas e o que permitem concluir.

Quero Perceber Porquê

Pode começar pela teoria e experimentar no R cada ideia que for aprendendo. Para compreender o que teste-t, regressão e ANOVA têm em comum, leia a comparação de modelos em blocos, alternando com o tutorial prático.

Quando a dúvida for sobre as condições que justificam a inferência, siga para Pressupostos do Modelo Linear. A Estatística Robusta aprofunda depois as alternativas quando a análise é demasiado sensível a essas condições. Não precisa de aprender essas alternativas todas antes de ajustar o seu primeiro modelo.

1 Trabalhar e Pedir Ajuda

Quando Encravar

Vai encontrar erros e momentos em que não sabe como continuar. Quando isso acontecer, comece pela mensagem de erro e pelo código que a produziu.

Mesmo com experiência, passamos tempo a procurar e corrigir erros. Aprender a fazê-lo é parte do trabalho de programar.

Protocolo de Debug

  1. Faça uma pausa curta se a frustração o estiver a impedir de ler o código.
  2. Leia a mensagem de erro. Palavra por palavra. O R está a tentar ajudar!
    • Error in ../. indica onde o problema está.
    • Muitas vezes, a mensagem diz explicitamente o que está mal.
  3. Identifique a linha problemática. O R normalmente indica qual linha causou o erro. Se não indicar, corra o código linha a linha.
  4. Verifique problemas comuns:
    • Fechou todos os parênteses? ( precisa de ).
    • Fechou todas as aspas? " precisa de ".
    • O nome do objecto está correcto? dados ≠ Dados (o R distingue maiúsculas de minúsculas).
    • A vírgula está no sítio certo?
    • Carregou o pacote necessário, por exemplo, library(ggplot2)?
    • O objecto já foi criado?
  5. Pesquise a mensagem de erro. Copie-a e procure uma explicação que se aplique ao seu código.
  6. Peça ajuda se continuar bloqueado.
DicaA Regra dos 15 Minutos

Se estiver bloqueado no mesmo problema há mais de 15 minutos, peça ajuda a um colega, docente ou comunidade de programação. Explique o que esperava e o que aconteceu: isso ajuda a localizar o problema.

Como Pedir Ajuda Eficazmente

Quando pedir ajuda (ou publicar a dúvida online), partilhe:

  1. O código que está a tentar correr.
  2. A mensagem de erro completa (não diga apenas «dá erro»).
  3. O que esperava que acontecesse.
  4. O que já tentou, para evitar repetir sugestões.

Exemplo útil: > «Estou a tentar fazer um boxplot com ggplot(dados, aes(x = grupo, y = resposta)) + geom_boxplot(), mas aparece o erro “object ‘grupo’ not found”. Já confirmei que a coluna existe no data frame. O que posso verificar?»

Um relato como «o meu gráfico não funciona» não dá informação suficiente para identificar o problema.

Trabalhar em Pares

Pode trabalhar sozinho ou em pares. A programação em pares (pair programming) permite discutir o raciocínio e resolver problemas em conjunto. Se trabalhar com alguém, alternem quem escreve e quem acompanha o código.

  • Alternem quem está ao teclado (driver) e quem acompanha (navigator).
  • Expliquem o raciocínio em voz alta e façam perguntas.
  • Confirmem que ambos conseguem explicar o código.
  • Evitem que uma pessoa faça tudo enquanto a outra observa, ou avancem sem ambos perceberem o que aconteceu.

Respeitem ritmos diferentes. Pode dizer: «Preciso de um momento para perceber esta parte» ou perguntar «Preferes que explique esta secção ou queres ler primeiro o tutorial?»

Trabalhar ao Seu Ritmo

Escolha os próximos passos conforme as dificuldades que encontrar. Se avançar rapidamente, ajude colegas, explore exercícios mais difíceis ou experimente aplicar o que aprendeu aos seus próprios dados. Se precisar de mais tempo, concentre-se nas bases de que precisa agora e regresse mais tarde às secções que lhe custaram. Não precisa de completar tudo de uma vez.

O objectivo não é memorizar todas as funções: é construir uma base conceptual, saber onde procurar informação e ganhar autonomia para continuar a aprender.

Perguntar

Não precisa de ter uma pergunta bem formulada para pedir ajuda. Pode mostrar a linha em que ficou preso ou dizer que parte da explicação perdeu. Por exemplo:

  • «Não percebi o que é X.»
  • «Porque fazemos Y desta forma?»
  • «Isto funcionou, mas não sei bem porquê.»
  • «Há uma forma mais simples de fazer Z?»
  • «Como aplico isto ao meu contexto?»

Se a resposta não esclarecer a dúvida, diga onde deixou de conseguir acompanhar.

Fazer Pausas

Faça pausas, mesmo que não sinta que precisa. Programar exige atenção e resolução de problemas; não tente trabalhar durante horas sem parar. Uma pausa pode ajudar se começar a cometer erros que antes evitava, reler a mesma linha sem a perceber, sentir irritação com erros triviais ou perder a concentração.

Levante-se, estique-se, beba água, descanse os olhos ou converse com alguém. A técnica Pomodoro é uma possibilidade: 25 minutos de trabalho concentrado, seguidos de 5 minutos de pausa; após quatro ciclos, faça uma pausa mais longa. Adapte os intervalos ao que funciona para si.

2 Troubleshooting Rápido

“object not found”

O que significa: o R não encontra o objecto indicado.

Causas comuns: gralha no nome, diferença entre maiúsculas e minúsculas, a linha que cria o objecto ainda não foi corrida, ou falta carregar o pacote necessário.

Veja que objectos existem e inspeccione o que pretende usar. Substitua nome_do_objecto pelo nome do seu objecto.

ls()
str(nome_do_objecto)

“could not find function”

O que significa: a função não existe com esse nome ou o R não a conhece. Verifique a grafia e se carregou o pacote que a contém. Carregue-o na secção de dependências do script, antes de o usar:

library(nome_do_pacote)

Se o pacote não estiver instalado, instale-o uma vez na consola, como preparação do ambiente, não no script de análise:

install.packages("nome_do_pacote")

“unexpected X”

O R encontrou algo inesperado na sintaxe. Verifique parênteses e aspas por fechar, vírgulas a mais ou a menos e operadores incorrectos.

“+” aparece na consola em vez de “>”

O R está à espera que complete um comando, normalmente porque faltam parênteses, aspas ou chavetas. Complete a sintaxe ou carregue em Esc para cancelar e recomeçar.

Gráfico em Falta ou em Branco

Verifique se usou + entre camadas do ggplot, se os nomes em aes() correspondem às colunas e se há valores em falta ou escalas inadequadas. Inspeccione os dados e experimente uma versão mínima do gráfico:

summary(dados)
ggplot(dados, aes(x = var1, y = var2)) +
  geom_point()

Adicione camadas gradualmente e substitua dados, var1 e var2 pelos nomes que está a usar.

Avisos e Erros

Um aviso indica que o código correu, mas que algo pode estar estranho; leia o aviso e avalie se afecta o resultado. Um erro indica que o código não correu e precisa de ser resolvido antes de prosseguir.