8  Fluxo de trabalho: obtendo ajuda

Este livro não é uma ilha; não existe nenhuma fonte específica que fará você se tornar uma pessoa expert em R. Assim que você começar a aplicar as técnicas descritas neste livro nos seus dados, você logo terá questionamentos que nós não respondemos aqui. Esta seção elenca algumas dicas sobre como obter ajuda e também te ajudar a continuar aprendendo.

8.1 O Google é seu amigo

Se você travar, começe com o Google. Tipicamente colocando “R” em uma busca é o suficiente para restringi-la para resultados relevantes: se a busca não for útil, geralmente significa que não existem muitos resultados específicos. Além do mais, adicionando na busca nomes de pacotes como “tidyverse” ou “ggplot2” irá ajudar a direcionar os resultados ao seu código de maneira mais familiar a você, por exemplo: “como fazer um boxplot no R com ggplot2” ao invés de “como fazer um boxplot no R”. Particularmente, o Google é muito bom com mensagens de erro. Se você tiver uma mensagem de erro e não tem ideia do que ela significa, dê um Google com a mensagem! Há chances de que outras pessoas também tenham ficado confusas com o erro anteriormente e em algum lugar da web você terá ajuda. (Se a mensagem de erro não estiver em inglês, execute Sys.setenv(LANGUAGE = "en") e execute novamente o código; provavelmente encontrará ajuda com mensagens de erro em inglês.)

Se o Google não ajudar tente o Stack Overflow. Comece reservando tempo para buscar uma resposta já existente, incluindo [R] para restringir sua busca por perguntas e respostas que usem R.

8.2 Criando um exemplo reprodutível (reprex)

Se a sua busca no Google não retornar nenhuma resposta satisfatória, é uma boa ideia preparar um reprex, termo para exemplo reprodutível (do inglês: reproducible example). Um bom reprex facilita para que outras pessoas possam te ajudar, e geralmente você poderá resolver o problema durante a criação dele. Existem duas partes na criação de um reprex:

  • Primeiro, você precisa permitir a reprodução do seu código. Isto é, significa que você precisa copiar tudo, isto é, incluir qualquer comando library() e criar todos os objetos necessários. A maneira mais fácil de fazer isto é usando o pacote reprex.

  • Segundo, você precisa ser minimalista. Exclua tudo que não for relacionado ao seu código. Usualmente isto envolve a criação de um objeto R menor e mais simples do que aquele que você está criando de verdade ou até mesmo usar dados internos1.

Isto parece muito trabalhoso! E pode ser, mas tem um grande retorno:

  • Em 80% dos casos, a criação de um excelente reprex mostrará a raiz do seu problema. É incrível como o processo de escrever um exemplo pequeno e auto-suficiente ajuda você a responder sua própria dúvida.

  • Nos 20% restantes, você terá entendido a essência do seu problema de uma maneira que é fácil para os outros entenderem. Isto aumenta consideravelmente suas chances de obter ajuda!

Ao criar um reprex manualmente, é fácil esquecer de algo por acidente, o que significa que seu código pode não ser executado no computador de outra pessoa. Evite esse problema utilizando o pacote reprex, que é instalado como parte do tidyverse. Digamos que você copie este código na sua área de transferência (ou no RStudio Server ou Cloud, selecionando):

y <- 1:4
mean(y)

Então execute reprex(), onde a saída padrão está formatada para o GitHub:

reprex::reprex()

Um HTML bem formatado irá aparecer no RStudio Viewer (se estiver usando RStudio) ou em seu navegador padrão. O reprex é automaticamente copiado para sua área de transferência (no RStudio Server ou Cloud você mesmo precisa copiar):

``` r
y <- 1:4
mean(y)
#> [1] 2.5
```

O texto é formatado em uma forma especial chamado de Markdown, que pode ser copiado para sites como StackOverflow ou Github que irão automaticamente formatar para se parecer com código. Abaixo está a provável saída do Markdown formatado para o Github:

y <- 1:4
mean(y)
#> [1] 2.5

Qualquer pessoa poderá copiar, colar e rodar isto imediatamente.

Existem três coisas que você precisa incluir para tornar seu exemplo reprodutível: pacotes necessários, dados e código.

  1. Pacotes devem ser carregados no início do script para facilitar a visualização de quais são necessários. Este é um bom momento para você verificar que está usando a última versão dos pacotes; você poder ter encontado um bug que foi resolvido desde a sua última atualização dos pacotes. Para pacotes do tidyverse, a maneira mais fácil de atualizar é com o comando tidyverse_update().

  2. A maneira mais fácil para incluir os dados é usar dput() para gerar o código em R necessário para recriar os dados. Por exemplo, para recriar o dataset mtcars no R execute os seguintes comandos:

    1. Execute dput(mtcars) no R
    2. Copie o resultado
    3. No reprex, digite mtcars <- e então cole o resultado copiado no passo anterior.

    Tente usar a menor parte dos seus dados que ainda gera o erro.

  3. Dedique um pouco de tempo para se certificar de que seu código é de fácil leitura por todos:

    • Esteja certo de que usou espaços e suas variáveis são concisas, porém objetivas;
    • Use comentários para indicar onde está o problema;
    • Faça seu melhor para excluir tudo que não é relacionado com o problema.

    Quanto mais sucinto o código, mais fácil é para entender e mais fácil ainda para arrumar.

Termine verificando que você fez um exemplo possível de ser reproduzido por meio de uma nova sessão do R, copiando e colando seu script.

A criação de exemplos reprodutíveis (reprex) não é trivial e exige alguma prática para aprender a criar exemplos reprodutíveis bons e que contenham o mínimo de código e dados possível. Contudo, aprender a fazer perguntas que incluem o código e dedicando algum tempo para fazer ele ser reprodutível será um aprendizado de longo prazo enquanto você aprender e aprimorar suas habilidades com o R.

8.3 Invista em você

Você também deve dedicar algum tempo se preparando para resolver problemas antes que eles ocorram. Investir um pouco de tempo para aprender R a cada dia terá sua recompensa no longo prazo. Uma maneira é seguir o que a equipe do tidyverse está fazendo no blog do tidyverse (https://www.tidyverse.org/blog/). Para acompanhar de forma mais ampla a comunidade do R, recomendamos a leitura do R weekly (https://rweekly.org): é um esforço da comunidade em agregar as notícias mais interessantes sobre o R a cada semana.

8.4 Sumário

Este capítulo encerra a parte “Visão geral” deste livro. Você viu até agora as partes mais importantes do processo em ciência de dados: visualização, transformação, organização e importação. Agora você tem uma visão abrangente do processo como um todo e começamos a entrar nos detalhes.

A próxima parte do livro, Visualização, é um aprofundamento na estrutura dos gráficos e criação de visualização de dados com o ggplot2, exemplos de como usar as ferramentas que aprendeu até agora para construir uma análise exploratória de dados e também introduzir boas práticas na criação de gráficos para comunicação.


  1. Nota de tradução: São dados que estão sempre disponíveis no R (por exemplo: mtcars), e são bastante utilizados em exemplos, aulas, tutoriais, entre outros. Outra opção interessante é utilizar dados do pacote dados para criar exemplos reprodutíveis.↩︎