Pular para o conteúdo principal
Módulo 2 · Lição 2 de 24/10 no curso~12 min
Lições do módulo (2/2)

Condicionais e Loops

Para implementar algoritmos e procedimentos complexos em R, você precisa ser capaz de controlar quais instruções executar e quantas vezes repeti-las.

Declarações Condicionais

Em R, a estrutura condicional fundamental é baseada em if e else. A sintaxe é muito semelhante a linguagens como JavaScript ou C:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

Chaves {} definem os blocos de código a serem executados dependendo do resultado da expressão booleana entre parênteses.

O ciclo for

O loop for em R é usado para iterar sobre elementos em uma sequência (como um vetor ou lista).

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

Em R, a sintaxe 1:3 é uma forma abreviada de criar o vetor c(1, 2, 3).

Também podemos fazer um loop diretamente sobre os elementos de um vetor existente:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

A função ifelse

Em R, a função ifelse() é uma versão vetorizada da instrução if-else. Permite aplicar uma condição a um vetor inteiro em uma única operação, retornando um vetor de resultados.

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

O ciclo while

O loop while é usado para repetir um bloco de código enquanto uma condição específica permanecer verdadeira (TRUE). É essencial garantir que a condição eventualmente se torne falsa para evitar loops infinitos.

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

Experimente você mesmo

Exercício#r.m2.l2.e1
Tentativas: 0Carregando…

Escreva uma instrução condicional if-else que verifique se a pontuação da variável é maior ou igual a 60. Se for, defina o status como 'Aprovado', caso contrário, defina-o como 'Falha'.

Carregando editor…
Mostrar dica

Verifica pontuação >= 60 e status de aprovação <- 'Aprovado' ou status <- 'Reprovado'

Solução disponível após 3 tentativas

Exercício#r.m2.l2.e2
Tentativas: 0Carregando…

Escreva um loop for que itere sobre a sequência 1:5 e imprima cada valor usando a função print().

Carregando editor…
Mostrar dica

Usa a sintaxe: for (i in 1:5) { print(i) }

Solução disponível após 3 tentativas

Exercício#r.m2.l2.e3
Tentativas: 0Carregando…

Dado o vetor v, escreva um loop for que itere sobre cada elemento e imprima seu duplo (val * 2) usando print().

Carregando editor…
Mostrar dica

Faça um loop pelos elementos de v: for (val in v) { print(val * 2) }

Solução disponível após 3 tentativas

Exercício#r.m2.l2.e4
Tentativas: 0Carregando…

Dadas as pontuações do vetor, use a função ifelse() para verificar quais elementos são maiores ou iguais a 60. Salve o resultado (que conterá 'Aprovado' ou 'Reprovado' para cada elemento) na variável resultados.

Carregando editor…
Mostrar dica

Use a função: resultados <- ifelse(pontuações >= 60, 'Aprovado', 'Reprovado')

Solução disponível após 3 tentativas

Exercício#r.m2.l2.e5
Tentativas: 0Carregando…

Use um loop while para dobrar o valor de x até exceder 50. Aumente também a variável do contador a cada iteração.

Carregando editor…
Mostrar dica

Use um loop while (x <= 50) e atualize x e contador dentro das chaves.

Solução disponível após 3 tentativas