R: Sintaxe básica do R

Última atualização: 2026-08-26

Na aula anterior, instalamos o R e o RStudio e executamos nossa primeira linha de código cat("Hello"). Nesta aula, vamos dominar completamente os “quatro elementos básicos da sintaxe” do R — comentários, variáveis, atribuições e saída. Isso servirá de base para as próximas 28 aulas.

A sintaxe do R difere um pouco da de outras linguagens: os comentários usam # em vez de //, as atribuições geralmente usam <- em vez de = e a concatenação de strings usa paste() em vez de +. Compreender essas quatro diferenças já é metade do caminho andado na hora de escrever código em R.

1. O que você vai aprender



2. Comentários: como adicionar “comentários” ao código

Comentários são texto destinado a leitores humanos; o interpretador do R os ignora completamente. No entanto, os comentários não são meras “decorações” — eles são a ferramenta de comunicação mais importante do programador.

(1) Por que os comentários são importantes?

Imagine dar uma olhada no código que você escreveu daqui a seis meses:

TEXT 📖 Somente leitura
# Code without comments:
x <- df %>% filter(age > 18) %>% mutate(group = ifelse(score >= 60, "pass", "fail"))

# Code with Comments:
# Filter 18 Adults aged 18 and older,and by score 60 Classified as "Approved"/Failed both groups
x <- df %>% filter(age > 18) %>% mutate(group = ifelse(score >= 60, "pass", "fail"))

O último é facilmente compreensível, enquanto o primeiro leva 5 minutos para ser entendido. Esse é o valor dos comentários.

(2) Sintaxe dos comentários em R

R Apenas comentários de uma linha (usando #), sem comentários em bloco /* */:

Sintaxe Compatível Descrição
# This is a comment Comentário de linha única — o único método compatível com o R
/* Multi-line */ R não é compatível; será exibido um erro de sintaxe
// Single line R Não é compatível; retornará object '//' not found

(3) Como faço para lidar com comentários de várias linhas?

O R não possui comentários de várias linhas nativamente, mas há duas soluções alternativas:

R
# Plan 1: Use this on every line # (Recommendations, Standard Practice)
# Line 1 Comments
# Line 2 Comments
# Line 3 Comments
x <- 10

# Plan 2:RStudio Keyboard Shortcuts(Most Commonly Used)
# Select multiple lines of code → Ctrl+Shift+C (macOS: Cmd+Shift+C)
# RStudio Automatically add to each line #,Click again to remove the comment
💡 Dica: Adote o bom hábito de “adicionar comentários a cada linha de código”. Estudos mostram que, quando você relê seu próprio código seis meses depois, o código sem comentários é praticamente impossível de entender.



3. Variáveis e convenções de nomenclatura

Variáveis são “recipientes” usados para armazenar dados. O R é uma linguagem de tipagem dinâmica, portanto, não é necessário declarar os tipos antecipadamente; basta atribuir valores às variáveis.

(1) Convenções de nomenclatura (Devem ser seguidas; caso contrário, ocorrerá um erro)

Regra Exemplo incorreto Exemplo correto Motivo
Deve conter apenas letras, números, sublinhados e pontos 2age <- 25 age2 <- 25 Não pode começar com um número
Não pode conter espaços my name my_name Os espaços são separadores sintáticos em R
A palavra-chave R não pode ser usada if <- 1 is_if <- 1 if é uma palavra-chave de fluxo de controle
Diferenciação entre maiúsculas e minúsculas Name e name são duas variáveis diferentes name (uso consistente de maiúsculas) O R diferencia entre maiúsculas e minúsculas
⚠️ Observação: O R diferencia maiúsculas de minúsculas, o que é uma das armadilhas mais comuns. Name, name e NAME são três variáveis completamente diferentes.

(2) Convenções de nomenclatura (recomendadas)

Existem duas convenções de nomenclatura predominantes na comunidade R; escolha uma e siga-a:

Estilo Exemplo Casos de uso
snake_case (traços de sublinhado) user_name, total_count estilo tidyverse (recomendado)
dot.case user.name, total.count R básico no estilo antigo

Este tutorial utiliza consistentemente o snake_case (em consonância com o estilo de pacotes modernos do R, como o dplyr e o ggplot2).

(3) Variáveis de visualização

R
# Assignment
x <- 10
y <- 20

# View a Single Variable
x
# [1] 10

# View All Variables(Equivalent to Environment Pane)
ls()
# [1] "x" "y"
💡 Dica: No painel “Ambiente/Histórico” do RStudio (canto superior direito), clique em uma variável para ver seu valor — é muito mais intuitivo do que ls().



4. Operador de atribuição: <- vs =

O R possui dois operadores de atribuição de nível superior; eles são quase equivalentes em termos de função, mas <- é recomendado.

(1) Comparação entre os dois estilos de redação

Dimensão <- =
Atribuição de nível superior
Criação de variáveis locais dentro de uma função ❌ (Elas são passadas para o escopo externo)
Passagem de argumentos em chamadas de função ❌ (Cria uma variável com o mesmo nome)
Convenções da comunidade ✅ Recomendado oficialmente pela R ❌ Propenso a causar confusão
Legibilidade ✅ A ideia de “atribuir o lado direito ao lado esquerdo” está claramente implícita ⚠️ Risco de confusão com o símbolo matemático de “igual”
R
# Writing Style 1:<-  (Recommendations)
x <- 10

# Writing Style 2:=   (Available but not recommended)
x = 10

(2) Atribuição reversa -> e atribuição global <<-

O R também possui dois operadores de atribuição “avançados”:

Símbolo Finalidade Nível de recomendação
x <- 10 Configuração padrão (da direita para a esquerda) ✅ Altamente recomendado
10 -> x Atribuição reversa (da esquerda para a direita) ⚠️ Apenas para fins de identificação ao ler código legado
x <<- 10 Atribuição global (ultrapassa o escopo da função) ❌ Raramente usada
⚠️ Observação: Na prática, <<- e -> são raramente usados. Como iniciante, você só precisa usar <-.

(3) A importância dos espaços: <- vs < -

R
# Correct: Assignment
x <- 10

# Error: This is "less-than sign" Plus "negative 10" (Comparison x and -10)
x < -10
⚠️ Observação: <- deve estar entre espaços; caso contrário, será interpretado como um operador de comparação. A falta de apenas um espaço pode fazer toda a diferença.



5. Funções de saída: print() x cat()

O R possui duas funções de saída comumente utilizadas, que servem a finalidades diferentes.

(1) Uma tabela que mostra as diferenças de relance

Características print() cat()
Aspas em string Exibir "Alice" Não exibir Alice
Índice de vetores Mostrar [1] 1 2 3 Ocultar 1 2 3
Concatenação multiparâmetro ❌ Requer paste() ✅ Concatenação direta
Quebra de linha Quebra de linha automática É necessária quebra de linha manual \n
Chamada automática ✅ Ao inserir um objeto diretamente no console ❌ Deve ser chamado explicitamente
Casos de uso Depuração, monitoramento Geração de relatórios, texto

(2) Demonstração ao vivo

R
name <- "Alice"
age <- 25

# print() -- General Output (with [1] and quotation marks)
print(name)
# [1] "Alice"

# cat() —— Concatenated Output(Recommendations,More flexible)
cat("Name:", name, ",Age:", age, "\n")
# Name: Alice ,Age: 25

(3) Outras funções de saída

Função Finalidade Casos de uso
message() Mensagem normal (pode ser suprimida por suppressMessages()) Mensagem de progresso para scripts longos
warning() Aviso (não interrompe o programa) Indica um risco, mas a execução continua
stop() Erro (interrupção do programa) Erro fatal; deve ser tratado por tryCatch()
💡 Dica: Neste tutorial, use cat() para exibir mensagens de texto e use print() para depurar e visualizar os valores das variáveis.



6. Diretório de trabalho

Quando o R é iniciado, ele entra em um diretório de trabalho por padrão, e todas as operações de leitura e gravação de arquivos ocorrem nesse diretório.

(1) A importância do diretório de trabalho

100%
graph LR
    A["R Process"] --> B["Working Directory<br/>(work dir)"]
    B --> C["data/sales.csv<br/>(Relative Path = ./data/sales.csv)"]
    B --> D["scripts/clean.R<br/>(Relative Path)"]
    B --> E["output/report.html<br/>(Relative Path)"]
    
    style A fill:#fff3cd
    style B fill:#d4edda

Se o diretório de trabalho estiver incorreto, read_csv("data/sales.csv") não conseguirá localizar o arquivo.

(2) Visualizar e definir o diretório de trabalho

R
# View the current working directory
getwd()
# [1] "C:/Users/Alice/Documents"

# Set the working directory (Use / or \\, Do not use \)
setwd("C:/Users/Alice/Projects/my_r_project")

(3) Abordagem recomendada: Projeto no RStudio

Fazer isso manualmente setwd() pode gerar erros (podem ocorrer problemas se o caminho contiver caracteres chineses ou espaços). Recomendamos usar um projeto do RStudio:

Vantagem Descrição
Configurações automáticas Abra o arquivo .Rproj; o diretório de trabalho é definido automaticamente como o diretório raiz do projeto
Independência do projeto Cada projeto possui seu próprio conjunto de histórico .R, ambiente e pacotes, sem interferência entre eles
Portátil Envie a pasta inteira do projeto para outras pessoas sem conflitos de caminho
Compatível com Git Melhores práticas para integrar projetos do RStudio ao Git
100%
graph LR
    A["File → New Project"] --> B["Select New Directory → New Project"]
    B --> C["Enter the project name r-tutorial"]
    C --> D["RStudio Create .Rproj Documents"]
    D --> E["Open later .Rproj<br/>Automatic Working Directory Setup"]
💡 Dica: Para todos os exemplos deste tutorial, é altamente recomendável que você crie um novo projeto no RStudio (como r-tutorial) e coloque todos os scripts .R nele.



7. Execução na linha de comando: Rscript

Se você quiser executar scripts do R (para automação, tarefas agendadas ou back-ends da web) sem abrir o RStudio, use Rscript.

(1) Criar um script

Crie um novo arquivo chamado hello.R em qualquer local:

R
# hello.R
cat("Hello, World!\n")

(2) Execução pela linha de comando

Abra o terminal (cmd / PowerShell no Windows, Terminal no macOS / Linux) e execute o seguinte comando:

BASH
Rscript hello.R

Resultado esperado:

TEXT 📖 Somente leitura
Hello, World!
💡 Dica: Rscript é amplamente utilizado em cenários como CI/CD, pipelines de dados e APIs da Web (R Plumber), e é um comando que todo engenheiro de R deve dominar.



8. Exemplo completo: Exercício abrangente de sintaxe básica

A seguir, apresentamos um exemplo de um fluxo de trabalho completo que reúne todos os conceitos abordados nesta aula.

▶ Exemplo: Script para gerenciamento de informações de alunos

R
# ============================================
# Student Information Management Script
# File Name:student.R
# ============================================

# 1. Notes:Script Description
# Author:Alice
# Features:Define student information and output it
# Date:2026-07-02

# 2. Variable Assignment (Use <- No need =)
student_name <- "Alice"
student_age <- 20
student_score <- 95.5
is_passed <- TRUE

# 3. Use cat() Output (Recommendations, Flexible Assembly)
cat("=== Student Information ===\n")
cat("Name:", student_name, "\n")
cat("Age:", student_age, "\n")
cat("Score:", student_score, "\n")
cat("Did I pass?:", is_passed, "\n")

# 4. Use print() Debugging (with [1] Index)
print(student_name)
print(student_score)

# 5. Simple Calculations
final_score <- student_score * 0.6 + 100 * 0.4  # 60% End of Term + 40% Usually
cat("\nFinal Results(60% End of Term + 40% Usually):", round(final_score, 2), "\n")

# 6. Delete Variable(Use with caution)
rm(student_name, student_age, student_score, is_passed, final_score)
▶ Experimente

Resultado esperado:

TEXT 📖 Somente leitura
=== Student Information ===
Name: Alice
Age: 20
Grades: 95.5
Did I pass?: TRUE
[1] "Alice"
[1] 95.5

Final Results(60% End of Term + 40% Usually): 97.3

(1) Procedimento

Etapa Ação Descrição
1 Criar projeto no RStudio r-basics File → New Project
2 Criar student.R no projeto Ctrl+Shift+N
3 Copie o código acima Cole o código inteiro
4 Selecionar tudo → Ctrl+Enter Enviar para o console
5 Visualizar a saída no console Ver 5 linhas de “Informações do aluno”

❓ Perguntas Frequentes

P: Qual é a diferença entre x <- 10 e x < -10? R: Preste atenção aos espaços! x <- 10 é uma atribuição (atribuir 10 a x), enquanto x < -10 é uma comparação (verificar se x é menor que -10). A falta de um único espaço faz toda a diferença. Adquira o hábito de adicionar espaços antes e depois de <-.

P: Posso usar caracteres chineses nos nomes das variáveis? R: Tecnicamente, sim (o R 4.x suporta nomes de variáveis em UTF-8), mas isso é fortemente desaconselhado. Nomes de variáveis em chinês podem levar a: ① caracteres distorcidos em diferentes plataformas; ② ninguém conseguir encontrar sua pergunta no Stack Overflow; ③ confusão durante a colaboração em equipe. Limite-se ao inglês e ao uso de sublinhados.

P: Qual é a diferença entre print() e digitar diretamente o nome de uma variável (por exemplo, apenas digitando x)? R: São completamente equivalentes no console — o interpretador do R chama automaticamente print() quando encontra uma variável sem parênteses. No entanto, em arquivos de script (.R), x não produzirá nenhuma saída; você deve usar explicitamente print(x) ou cat(...).

P: É possível restaurar variáveis excluídas? R: Não, rm() é irreversível. Para restaurá-las, é necessário reatribuir seus valores. Ao usar rm(list = ls()) para limpar o ambiente, recomendamos salvar primeiro as variáveis importantes no arquivo .RData (save.image()).

P: Como faço para escolher entre paste() e cat()? R: paste() retorna uma string (que pode ser processada posteriormente), enquanto cat() exibe diretamente no console (sem valor de retorno). Use paste() para concatenar em uma nova variável e cat() para saída direta.


📖 Resumo


📝 Exercícios

  1. Exercício básico: Crie um novo script no RStudio e defina cinco variáveis para armazenar um trecho de texto (name), sua idade (age), seu peso (weight, número de ponto flutuante), se você é estudante (is_student, booleano) e sua cidade (city). Use cat() para concatená-las na saída: “Meu nome é [name], tenho [age] anos, peso [weight] kg, moro em [city] e [is_student] ainda estou na escola.” Faça uma captura de tela após executar o script e salve-a.

  2. Exercício Básico: Crie um novo projeto no RStudio chamado r-basics. Dentro do projeto, crie um script chamado variables.R e defina cinco variáveis de tipos diferentes (numérico, caractere, lógico, complexo e nulo NA). Use typeof() para verificar o tipo de cada variável, faça uma captura de tela da saída de cada um dos cinco comandos typeof() e salve-a.

  3. Problema avançado: Escreva um script que: ① use paste() para concatenar "Hello" e "World" em “Hello-World” (sep = "-"); ② use cat() para exibir o resultado; ③ use nchar() para verificar o comprimento da string concatenada. Após executar o script, faça uma captura de tela e salve a saída do console.

  4. Desafio: Escreva um script em R que faça o seguinte: ① Use setwd() para alterar o diretório de trabalho para tempdir() (o diretório temporário do R); ② Use getwd() para exibir o diretório de trabalho atual; ③ Use save.image() para salvar o espaço de trabalho em my_workspace.RData; ④ Use rm(list = ls()) para limpar todas as variáveis; ⑤ Use load("my_workspace.RData") para recarregar. Verifique se todas as variáveis ainda estão presentes após a recarga. Após executar o script, faça uma captura de tela e salve a saída completa de todas as 5 etapas.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%