R Academy · Aula

Comentários, estilo e legibilidade

Escreva código R limpo e documentado seguindo o guia de estilo do tidyverse.

Aula 2 de 413 etapas

Comentários, estilo e legibilidade é uma aula grátis de R Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de R Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de R Academy inclui 4 aulas no total.

Comentários de uma linha com #

Em R, o caractere # inicia um comentário. Tudo de # até o fim da linha é ignorado pelo interpretador. Os comentários são para as pessoas — explique por quê, não apenas o quê.

# This is a comment — R ignores it completely
x <- 42   # inline comment after code

# Bad comment (states the obvious):
y <- y + 1   # add 1 to y

# Good comment (explains intent):
y <- y + 1   # shift index to 1-based for output display

cat('x =', x)

Cabeçalhos de seção com ------

Uma convenção amplamente adotada em R é criar cabeçalhos de seção adicionando pelo menos quatro hifens, sinais de igual ou cerquilhas após o texto do comentário. O RStudio reconhece esses cabeçalhos e os adiciona ao esquema do documento para facilitar a navegação.

# Data Loading -------------------------------------------------------

# This section loads raw CSV files from the data/ folder

# Data Cleaning =======================================================

# Remove duplicates and fix missing values

# Modeling ############################################################

# Fit linear model and evaluate

cat('Section headers improve navigation')

Convenção de nomenclatura snake_case

O guia de estilo do tidyverse recomenda snake_case para todos os nomes de objetos: palavras em minúsculas separadas por sublinhados. Evite pontos (que se parecem com chamadas de métodos em outras linguagens) e camelCase para manter a consistência.

# Good: snake_case
user_age <- 25
monthly_revenue <- 15000
calculate_mean <- function(x) mean(x)

# Avoid: dots in names (looks like OOP method calls)
user.age <- 25       # confusing

# Avoid: camelCase (inconsistent with tidyverse)
userAge <- 25

# Avoid: ALL_CAPS (reserved for true constants by convention)
MAX_RETRIES <- 3     # acceptable for config constants only

cat('snake_case wins')

Espaços ao redor dos operadores

Sempre coloque espaços ao redor dos operadores de atribuição e de comparação. Isso melhora muito a legibilidade. A única exceção ocorre dentro de listas de argumentos de funções, nas quais = vincula os nomes dos argumentos.

# Good: spaces around <- and operators
x <- 10
y <- x + 5
result <- x * y - 2
is_valid <- x > 0 & y < 100

# Bad: cramped
x<-10
y<-x+5

# Function arguments: = without extra spaces is fine
mean(x = c(1, 2, 3), na.rm = TRUE)

# Comparison operators also need spaces
if (x > 0) cat('positive')
if (x >= 0 & y <= 100) cat('in range')

Use <-, não =, para atribuição

Embora R permita usar = para atribuição no nível superior, a forte convenção da comunidade é usar <- para atribuir objetos e reservar = exclusivamente para valores de argumentos de funções. Essa distinção torna o código muito mais fácil de ler rapidamente.

# Correct: <- for assignment
name <- 'Alice'
score <- 95.5
results <- c(1, 2, 3)

# Correct: = inside function calls
round(3.14159, digits = 2)
read.csv('data.csv', header = TRUE, sep = ',')

# Avoid: = for top-level assignment
# name = 'Alice'   <- works but not idiomatic

cat('Assignment convention:', name, score)

Limite de 80 caracteres por linha

Manter as linhas com menos de 80 caracteres garante que o código seja legível em editores com painéis divididos, páginas impressas e ferramentas de revisão de código. No RStudio, você pode exibir uma guia de margem na coluna 80 em Ferramentas → Opções globais → Código → Exibição.

# Bad: one very long line (hard to read)
result <- some_function(argument_one = 'value', argument_two = 100, argument_three = TRUE, argument_four = 'long_string')

# Good: break at commas, indent continuation
result <- some_function(
  argument_one   = 'value',
  argument_two   = 100,
  argument_three = TRUE,
  argument_four  = 'long_string'
)

cat('Readable at 80 chars')

Sem ponto e vírgula

Ao contrário de JavaScript ou C, R não exige ponto e vírgula no final das instruções. É possível usar ponto e vírgula para colocar várias instruções em uma linha, mas o guia de estilo recomenda: uma instrução por linha, sem ponto e vírgula.

# Bad: semicolons and multiple statements per line
x <- 1; y <- 2; z <- x + y

# Good: one statement per line
x <- 1
y <- 2
z <- x + y

# The semicolon form is only acceptable in very short
# interactive throwaway code, never in scripts
cat('z =', z)

Nomes de variáveis legíveis

Escolha nomes descritivos sem serem excessivamente longos. Uma boa regra é: se, seis meses depois, você precisar pensar por mais de um segundo para entender o nome de uma variável, ele é curto demais ou críptico demais.

# Too cryptic:
d <- read.csv('data.csv')
tmp <- d[d$v1 > 0, ]
r <- lm(v2 ~ v1, data = tmp)

# Good names:
sales_data    <- read.csv('data.csv')
positive_rows <- sales_data[sales_data$revenue > 0, ]
revenue_model <- lm(profit ~ revenue, data = positive_rows)

# Avoid abbreviations that are not universally understood:
# n_obs is fine (number of observations)
# nrv is not (nobody knows what this is)

cat('Names tell the story')

Chaves e indentação

O guia de estilo do tidyverse especifica: a chave de abertura { deve ficar na mesma linha, e a chave de fechamento }, em sua própria linha. Use 2 espaços para a indentação (não tabulações). A indentação consistente é fundamental para ler uma lógica aninhada.

# Good style: brace on same line, 2-space indent
if (x > 0) {
  cat('positive\n')
} else {
  cat('non-positive\n')
}

# Good function definition:
calculate_bmi <- function(weight_kg, height_m) {
  bmi <- weight_kg / height_m^2
  round(bmi, 1)
}

cat('BMI:', calculate_bmi(70, 1.75))

Espaçamento dentro de colchetes e após vírgulas

Coloque um espaço depois de cada vírgula (como na escrita em português), mas nenhum espaço antes da vírgula ou imediatamente dentro dos colchetes. Isso segue a notação matemática e facilita a leitura da indexação.

# Good: space after comma, not before
x <- c(1, 2, 3, 4, 5)
m <- matrix(1:9, nrow = 3, ncol = 3)

# Subsetting: no space before [ or inside []
first_row <- m[1, ]      # good
value     <- m[2, 3]    # good

# Bad:
# c(1,2,3)     <- no space after comma
# m[ 1, ]      <- space after [
# m[1 , ]      <- space before comma

cat('Spacing is consistent')

Usando styler e lintr

Duas ferramentas automatizam a aplicação do estilo em R. styler reformata seu código para seguir o guia de estilo do tidyverse. lintr verifica estaticamente o código em busca de problemas de estilo e possíveis erros, sem executá-lo. Ambas se integram ao RStudio.

# styler: reformat a file automatically
# install.packages('styler')
# styler::style_file('my_script.R')

# styler: reformat the whole project
# styler::style_dir('R/')

# lintr: check for style and potential bugs
# install.packages('lintr')
# lintr::lint('my_script.R')

# lintr reports issues like:
#   line 10: [object_name_linter] Variable 'myVar' should use snake_case
#   line 15: [spaces_around_ops_linter] No space before '<-'

cat('Style tools: styler + lintr')

Verificação rápida

De acordo com o guia de estilo do tidyverse, qual das opções a seguir é a forma correta de escrever uma instrução de atribuição em R?

Estilo e legibilidade — principais conclusões

Um código R bem formatado é profissional, fácil de manter e colaborativo:

  • # para comentários — explique por quê, não apenas o quê
  • Cabeçalhos de seção com ------ ou ====== para navegação
  • snake_case para todos os nomes de objetos e funções
  • Espaços ao redor de <-, +, == etc.
  • Use <- para atribuição e = somente nos argumentos de funções
  • No máximo 80 caracteres por linha — divida chamadas longas em várias linhas
  • Sem ponto e vírgula — uma instrução por linha
  • Indentação de 2 espaços, com { na mesma linha
  • Use styler para formatar automaticamente e lintr para detectar problemas
# Putting it all together:

# Calculate summary statistics ----------------------------------------
calculate_summary <- function(values, remove_na = TRUE) {
  cleaned <- values[!is.na(values)]
  list(
    mean   = mean(cleaned),
    median = median(cleaned),
    sd     = sd(cleaned)
  )
}

test_scores <- c(85, 90, NA, 78, 92, 88)
stats <- calculate_summary(test_scores)
cat('Mean:', stats$mean, '\n')
cat('SD:  ', stats$sd)
Grátis para começar

Aprenda R com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
43
Aulas
159

Perguntas Frequentes

A aula “Comentários, estilo e legibilidade” é grátis?

Sim — o texto completo de “Comentários, estilo e legibilidade” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de R Academy, atualize para CoddyKit PRO. O curso de R Academy inclui 4 aulas no total.

O que vou aprender em “Comentários, estilo e legibilidade”?

Escreva código R limpo e documentado seguindo o guia de estilo do tidyverse. Você pratica R Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar R Academy?

Nenhuma experiência prévia é necessária. R Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Comentários, estilo e legibilidade”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de R Academy?

Sim. Cada aula de R Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Usando source() para carregar scripts
  2. Comentários, estilo e legibilidade
  3. Diretórios de trabalho e caminhos de arquivos
  4. Projetos R e gerenciamento do espaço de trabalho
← Voltar para R Academy