Se você está começando a aprender sobre R agora, ou até mesmo se já possui algum conhecimento, mas sente que chegou em um ponto de "estagnação", esse texto é pra você. Aqui reúno cinco dicas e aprendizados que passei a adotar que ajudam na curva de aprendizado da linguagem, mas que não foram tão óbvias no início.
1. Use um guia de estilo (style guide)
Guias de estilo são importantes e devem ser encarados como nossos amigos na hora de escrever um código. Em outras palavras, assim como a pontuação e acentuação correta, os guias de estilo tornamascoisasmaisfaceisdeler.
Boas referências sobre guia de estilo podem ser encontradas no Tidyverse Style Guide, escrito pelo Hadley Wickham, que foi baseado no Google's R Style Guide. Uma leitura desses guias é certamente proveitosa, pois reúnem um compilado de boas práticas para escrever códigos em R, contemplando temas como sintaxe, nomes de objetos, indentação do código, controle de fluxo, etc.
Eu posso garantir que não é nada de outro mundo, e tornará sua vida no R mais fácil a longo prazo.
2. Otimize o RStudio
Você certamente já se deparou com arquivos Rhistory em suas pastas de códigos de R ou mensagens, um tanto quanto incomodativas, sobre salvar objetos usando .Rdata. Apesar de ser um comportamento com boa intenção da configuração padrão do RStudio - ou seja, tentar evitar a perda de comandos e objetos de uma sessão do R - não traz muitos benefícios e, em geral, esses recursos devem ser deixados de lado. Há pouco controle sobre o comportamento desses arquivos que são gerados automaticamente pelo programa, além de outras desvantagens, o que certamente não é o ideal para qualquer código que preze pela reprodutibilidade.
Portanto, e partindo do princípio de que um código reprodutível é idealmente organizado em um arquivo .R, desabilitar o .Rhistory e o .Rdata tornará sua experiência no RStudio menos contraproducente. Para desabilitar esses recursos é simples: navegue por Tools > Global Options > General e desmarque as opções:
- Restore .RData into workspace at startup
- Always save history (even when not saving .RData)
Além disso, o tema visual padrão do RStudio é uma tela branca não muito convidativa para quem passa algumas longas horas olhando para ela. Felizmente podemos modificar o visual do programa de modo a adaptá-lo às preferências do usuário. Na mesma tela de configuração indicada acima, no menu Appearance, é possível escolher outros temas com cores diferentes. Você pode testar e modificar para verificar com qual tema se adapta melhor, eu utilizo o tema "Cobalt" atualmente.
3. Aprenda a generalizar tarefas
Se você precisa repetir um código mais do que duas vezes em um determinado projeto, é melhor você criar uma função que generalize a ação sendo executada. No final das contas, serão menos linhas e mais fácil de ler.
Esse princípio, proferido e seguido por diversos programadores, é um ponto de inflexão quando programamos em R ou qualquer outra linguagem. A ideia básica é trazer facilidade, agilidade e eficiência para as rotinas de programação, algo que é usualmente ignorado nos primeiros passos em uma nova linguagem.
Quando optamos por duplicar um determinado código, por exemplo, o tratamento de um conjunto de dados ou as configurações de saída de um gráfico, estamos explicitamente dificultando a atualização e manutenção desse código, já que a mesma modificação teria que ser feita em mais de uma linha ao longo do código. Com uma função, que executa a mesma tarefa, é mais simples fazer a manutenção do código, bastando modificá-la uma única vez. Apesar de haver um custo de aprendizado maior, escrever funções tornará suas rotinas mais robustas, além de haver ganhos de economia de tempo.
Mas não há motivo para se apavorar e perder tempo criando funções para tudo, comece pelo básico. Uma boa referência sobre esse assunto pode ser o livro Advanced R do Hadley Wickham, que tem um capítulo dedicado ao tema.
4. Leia (e escreva) a documentação
É comum receber dúvidas de iniciantes ou ler postagens em fóruns com perguntas que são facilmente encontradas digitando "?nome_da_função" no Console. Apesar de ser um comportamento intuitivo, não é recomendável procurar respostas em outras pessoas sem antes instigar em si próprio um pouquinho de instinto investigativo. Nesse ponto entram as documentações, que nada mais são do que guias descritivos sobre um determinado pacote e/ou função.
Não cair na tentação de enviar a dúvida para um amigo ou conhecido, mas, antes, ir pesquisar sobre a documentação do pacote é uma maneira educada de atingir maior independência na linguagem. Portanto, use e abuse das documentações pois, certamente, a pessoa que escreveu a documentação teve bastante trabalho e pensou nos detalhes e dúvidas que poderiam surgir com o uso do objeto da documentação.
Dentro dessa dica também é importante não menosprezar o uso dos comentários em um código. Não há necessidade de poluir o código com comentários, mas também não há razão para ter medo de usá-los, e isso facilita a vida de outras pessoas que podem vir a ter acesso ao seu código.
5. Reprodutibilidade é importante
Especialmente quando trabalhando com dados e problemas do mundo real em uma equipe, o usuário de R precisa pensar, e escrever, de uma maneira que a solução que se quer encontrar seja replicável para outras pessoas, do contrário não haverá sentido em compartilhar sua análise ou código. Esse é um princípio básico do método científico.
Uma boa aplicação desse princípio são os chamados arquivos de projeto ou .Rproj no RStudio, que permitem criarmos uma estrutura e configuração comum de pastas que podem ser usadas para determinado script de R. Isso é importante pois facilita a utilização do código por outros usuários, já que embute configurações globais como encoding, caminhos de pastas e diretórios de trabalho, etc. Portanto, uma boa prática ao iniciar um novo projeto ou código, por exemplo uma análise de dados, que será disponibilizado para outras pessoas/ambientes, é utilizar o pacote usethis para criar um novo projeto através de uma simples função:
usethis::create_project("nome_do_projeto")
A função cria um novo arquivo de projeto já com uma estrutura de pasta organizada para armazenar scripts, rápido e fácil. O pacote também oferece outras funcionalidades diversas para otimizar a organização de projetos, pacotes, etc., com especial importância para a reprodutibilidade. Vale a pena explorar e aprender sobre.
E, por fim, mas não menos importante: aproveite e faça os cursos da Análise Macro, pois eles irão facilitar e acelerar a sua curva de aprendizado da linguagem R!