48  Conseguindo ajuda

Esta página aborda sobre como obter ajuda postando um problema (issue) no Github ou postando um exemplo reprodutível (“reprex” ou MRE para Minimal reprodutible exemple) em um fórum online.

48.1 Issues (problemas) do Github

Muitos pacotes e projetos R têm seu código hospedado no site Github.com. Você pode se comunicar diretamente com os autores através do site, postando um “Problema”.

Leia mais sobre como armazenar seu trabalho no Github na página Colaboração e Github.

No Github, cada projeto está contido em um repositório. Cada repositório contém código, dados, saídas, documentação de ajuda etc. Existe também um veículo de comunicação com os autores denominado “Problemas”.

Veja abaixo a página do Github para o pacote incidence2 (usado para fazer curvas epidêmicas). Você pode ver a guia “Issues” (Problemas, em imglês) destacada em amarelo. Você pode ver que existem 5 questões em aberto.

Nesta guia Issues você pode ver os problemas em aberto. Revise-os para garantir que seu problema não foi resolvido ainda. Você pode abrir um novo problema clicando no botão verde à direita. Para fazer isso, será necessário ter uma conta Github.

Siga as instruções abaixo para fornecer um exemplo mínimo e reproduzível do seu problema. Por favor, seja educado(a)! A maioria das pessoas que desenvolve pacotes e projetos R estão fazendo isso no seu tempo livre (como este manual!).

Para ler materiais mais avançados sobre como lidar com problemas no seu repositório, verifique a documentação sobre problemas do Github.

48.2 Exemplo reprodutível

Fornecer um exemplo reprodutível (“reprex”) é a chave para obter ajuda com sua postagem ou problema no Github. As pessoas querem ajudá-lo, mas você precisa dar um exemplo com o qual elas possam trabalhar em seus próprios computadores. O exemplo deve:

  • Demonstrar o problema que você encontrou
  • Ser o mais curto possível, incluindo apenas os dados e o código necessário para reproduzir o seu problema
  • Ser reprodutível, de modo que todos os objetos (por exemplo, dados), e pacotes sejam incluídos (por exemplo, library() ou p_load())

Além disso, certifique-se de não postar nenhum dado sensível com o reprex! Você pode criar dataframes de exemplo ou usar um dos dataframes embutidos no R (insira data() para abrir uma lista desses conjuntos de dados).

O pacote reprex

O pacote reprex pode ajudá-lo a fazer um exemplo reprodutível:

  1. reprex é instalado com tidyverse, então carregue qualquer um dos pacotes
# intale/carregue o tidyverse (que inclui o reprex)
pacman::p_load(tidyverse)
  1. Inicie um script R que gere seu problema, passo a passo, começando com o carregamento de pacotes e dados.
# carregar pacotes
pacman::p_load(
     tidyverse,  # manipulação de dados e visualização
     outbreaks)  # exemplos de dados de surtos 

# linelist lista dos casos da epidemia de gripe
outbreak_raw <- outbreaks::fluH7N9_china_2013  #recuperar conjunto de dados do pacote de surtos

# Limpar conjunto de dados
outbreak <- outbreak_raw %>% 
     mutate(across(contains("date"), as.Date))

# Visualizar epidemia
ggplot(data = outbreak)+
     geom_histogram(
          mapping = aes(x = date_of_onset),
          binwidth = 7
     )+
  scale_x_date(
    date_format = "%d %m"
  )

Copie todo o código para a área de transferência e execute o seguinte comando:

reprex::reprex()

Você verá uma saída HTML aparecer no painel RStudio Viewer. Ele conterá todo o seu código e quaisquer avisos, erros ou resultados de plotagem. Essa saída também é copiada para sua área de transferência, para que você possa publicá-la diretamente em um problema do Github ou em uma postagem do fórum.

  • Se você definir session_info = TRUE, a saída de sessioninfo ::session_info() incluírá suas versões do R e dos pacotes R
  • Você pode fornecer um diretório de trabalho para wd =
  • Você pode ler mais sobre os argumentos e possíveis variações em documentation ou inserindo ?Reprex

No exemplo acima, o comando ggplot() não rodou porque o argumento date_format = não está correto - deveria ser date_labels =.

Dados mínimos

As pessoas que vão te ajudar precisam ser capazes de usar seus dados - de preferência, eles precisam ser capazes de criá-los com código.

Para criar um conjunto de dados mínimos, considere anonimizar e usar apenas um subconjunto das observações.

EM CONSTRUÇÃO - você também pode usar a função dput() para criar um conjunto mínimo de dados.

48.3 Postar em um fórum

Leia muitas postagens do fórum. Entenda quais postagens são bem escritas e quais não são.

  1. Primeiro, decida se deseja fazer a pergunta. Você revisou extensivamente o site do fórum, tentando vários termos de pesquisa, para ver se sua pergunta já foi feita?

  2. Dê um título informativo à sua pergunta (não algo como “Socorro! Isso não está funcionando!”).

  3. Escreva sua pergunta:

  • Apresente sua situação e problema
  • Faça um link com postagens de problemas semelhantes e explique porque eles não responderam à sua pergunta
  • Inclua qualquer informação relevante para ajudar alguém que não conhece o contexto do seu trabalho
  • Dê um exemplo reprodutível mínimo com as informações do seu trabalho
  • Use ortografia, gramática e pontuação adequadas e divida sua pergunta em parágrafos para que seja mais fácil de ler
  1. Depois de postar, monitore sua pergunta para responder a qualquer pedido de esclarecimento. Seja educado(a) e cortês - muitas vezes as pessoas que respondem estão oferecendo seu tempo para ajudá-lo. Se você tiver uma pergunta de acompanhamento, considere se deve ser uma pergunta postada separada.

  2. Marque a pergunta como respondida, se obtiver uma resposta que atenda à solicitação original. Isso ajuda outras pessoas a reconhecerem rapidamente a solução mais tarde.

Leia estas postagens sobre como fazer uma boa pergunta e sobre ocódigo de conduta do Stack overflow.

48.4 Recursos

Página do Tidyverse sobre como obter ajuda!

Dicas para produzir um conjunto mínimo de dados

Documentação para a função dput