Menu
Coddy logo textTech

Iterando sobre elementos de vetores

Parte da seção Fundamentos do Journey de R da Coddy. Lição 63 de 78.

Embora as operações vetorizadas do R sejam poderosas, às vezes você precisa processar cada elemento individualmente com uma lógica personalizada. Um loop for permite que você itere pelos elementos de um vetor um de cada vez.

A maneira mais simples de percorrer um vetor é iterar diretamente sobre seus elementos:

fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
  print(fruit)
}

Saída:

[1] "apple"
[1] "banana"
[1] "cherry"

Em cada iteração, a variável de loop fruit assume o valor do próximo elemento no vetor. Esta abordagem é limpa e legível quando você precisa apenas dos próprios valores.

Você pode combinar a iteração com a lógica condicional para processar elementos seletivamente:

numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
  if (num > 5) {
    print(num)
  }
}

Saída:

[1] 8
[1] 10

Este padrão é útil quando você precisa aplicar operações diferentes com base no valor de cada elemento, algo que operações vetorizadas sozinhas nem sempre conseguem lidar.

challenge icon

Desafio

Fácil

Você receberá duas linhas de entrada:

  1. Uma lista de números separados por vírgulas (por exemplo, 12,5,18,3,25,8,14)
  2. Um valor de limiar (por exemplo, 10)

Usando um loop for para iterar sobre os elementos do vetor:

  1. Crie um vetor a partir dos números separados por vírgulas
  2. Percorra cada elemento do vetor
  3. Para cada elemento que seja maior ou igual ao limiar, imprima esse elemento usando print()

Por exemplo, se as entradas forem:

4,15,8,22,6,19,11
10

A saída deverá ser:

[1] 15
[1] 22
[1] 19
[1] 11

Explicação: o loop verifica cada elemento em relação ao limiar (10). Os elementos 15, 22, 19 e 11 são todos maiores ou iguais a 10, portanto são impressos. Os elementos 4, 8 e 6 são ignorados.

Experimente você mesmo

# Ler a entrada
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)

# Converter a string separada por vírgulas em um vetor numérico
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))

# TODO: Escreva seu código abaixo
# Use um loop for para iterar pelo vetor numbers
# Para cada elemento >= threshold, imprima-o usando print()
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de R online