Tenho certeza que você já tentou ler algum código, talvez até mesmo um código seu antigo, e se embolou no meio do script, não conseguiu entender alguma função e ficou por isso mesmo.. enfim, muitas vezes pessoas escrevem um código sem imaginar que outra pessoa poderá ler ou que ele poderá usa-lo novamente no futuro e não irá entender mais nada. Por isso, existe o que chamamos de boas práticas na programação. Boas práticas, em resumo, são dicas que servem para que você possa produzir um código mais organizado e padronizado, que permitirá que outras pessoas ou até mesmo você daqui um tempo, consiga entende-lo sem dificuldades. Daqui pra frente você poderá criar ou editar os códigos de uma maneira que ele fique mais fácil de se ler, entender e fazer possíveis alterações. Então vamos para as dicas:

Nomes dos objetos

# bom
trabalho_estatistica_3

primeiro_mes

# ruim
Trabalho de estatística 3

 Primeiro_MÊS
mean <- mean(dados)

desvio_padrao <-  sd(dados)

p <- x

Espaçamento

# sempre 
(1, 2, 3)
[pedro, 4, x]

# nunca
(1,2,3)
[pedro , joao ,3]

Parênteses

# sempre
filter(dados, mes == "janeiro")

# nunca
filter (dados, mes == "janeiro")
filter( dados, mes == "janeiro" )

Blocos de código

# sempre 

if ( x < mean(dados)) {
  message("x está abaixo da média")
}

if (y == 0) {
  if (x > 0) {
    log(x)
  } else {
    message("x é negativo ou zero")
  }
  
} else {
  y^x
  
}
  
# nunca 
if (x < mean(dados)) {
message("x está abaixo da média")
}

if (y == 0)
{
  
 if (x > 0) {
   log(x)
 } else {
  message("x é negativo ou zero") 
   }
  } else { y^x}

Atribuição

# sempre 
x <- 1

# nunca

x = 1

Textos

# sempre 
"qualquer texto"
'qualquer "texto"'

# nunca 
'qualquer texto'

Vetores lógicos

Comentários

Pipe

longas filas

dados %>% 
  group_by(Species) %>% 
  summarise(
    Sepal.length = mean(Sepal.length),
    Sepal.Width = mean(Sepal.Width),
    Species = n_distinct(Species)
  )
# pequeno exemplo

casos <- dados %>%
  group_by(RacaCor, Sexo) %>%
  summarise(n_casos = n()

ggplot

Introdução

  • As sugestões de estilo + usadas para separar camadas do ggplot2 são muito semelhantes àquelas para %>% pipe.

Espaçamento e longas filas

  • Sempre coloque um espaço antes do +, além disso, sempre que o utilizar, siga para uma nova linha. Não coloque mais de uma camada do gráfico na mesma linha, mesmo que o gráfico tenha apenas duas camadas. Outra coisa importante, se o argumento for muito grande para apenas uma linha, coloque cada argumento em uma linha.
# sempre

ggplot(letalidade) + 
  geom_col(aes(x = RacaCor, y = taxa_l, fill = Sexo), position = "dodge") +
  labs(x = "Pessoas",
       y = "Letalidade (%)",
       title = "Taxa de letalidade da COVID-19 no ES") +
  scale_fill_viridis_d() +
  theme_bw() 

# nunca

ggplot(letalidade) + 
  geom_col(aes(x = RacaCor, y = taxa_l, fill = Sexo), position = "dodge") + labs(x = "Pessoas", y = "Letalidade (%)", title = "Taxa de letalidade da COVID-19 no ES") + scale_fill_viridis_d() + theme_bw()

Filtragem

  • é possível fazer filtragem e manipulação dos dados dentro do ggplot, em vez disso, faça todas as manipulações necessárias antes (pode ser com o %>%).
# sempre

iris %>%
  filter(Species == "setosa") %>%
  ggplot(aes(x = Sepal.Width, y = Sepal.Length)) +
  geom_point()

# nunca

ggplot(filter(iris, Species == "setosa"), aes(x = Sepal.Width, y = Sepal.Length)) +
  geom_point()

Dicas

  • A função attach () em R pode ser usada para tornar objetos dentro de dataframes acessíveis em R com menos pressionamentos de tecla. Essa função, em contrapartida, tem uma grande chance de causar erros no seu código. Evite usa-la.

  • O R possui uma função que irá formatar seu código com algumas boas práticas, como espaçamento, pontuação, quebra de linhas e etc. Basta selecionar a parte do código desejada e utilizar ctl + shift + a.

  • Não coloque ; no final de uma linha e não use ; para colocar vários comandos em uma linha. O ; serve para que você quebre a linha do seu código sem precisar dar enter.

Finalização

Vale lembrar que essas foram apenas algumas das ínumeras dicas de boas praticas existentes, mas praticando essas você irá construir um código muito bem estruturado e de fácil entendimento. No futuro iremos postar uma playlist com vídeos curtos no nosso canal no youtube a respeito dessas boas práticas.

Basta cliclar AQUI para ter acesso direto ao canal.

Referências

https://style.tidyverse.org/

https://google.github.io/styleguide/Rguide.html