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] 10Este 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.
Desafio
FácilVocê receberá duas linhas de entrada:
- Uma lista de números separados por vírgula (ex:
12,5,18,3,25,8,14) - Um valor de limite (threshold) (ex:
10)
Usando um loop for para iterar sobre os elementos do vetor:
- Crie um vetor a partir dos números separados por vírgula
- Percorra cada elemento no vetor
- Para cada elemento que for maior ou igual a o limite, imprima esse elemento usando
print()
Por exemplo, se as entradas forem:
4,15,8,22,6,19,11
10A saída deve ser:
[1] 15
[1] 22
[1] 19
[1] 11Explicação: O loop verifica cada elemento em relação ao limite (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.
Folha de consulta
Um loop for permite iterar pelos elementos de um vetor um de cada vez e aplicar uma lógica personalizada a cada elemento.
Sintaxe básica para percorrer um vetor com um loop:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Em cada iteração, a variável do loop assume o valor do próximo elemento no vetor.
Combinando loops com lógica condicional para processar elementos seletivamente:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Este padrão é útil quando você precisa aplicar diferentes operações com base no valor de cada elemento.
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()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
4Operadores Parte 2
Operadores Lógicos (AND, OR)Operadores Lógicos Parte 2 (NOT)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico de Conversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetro Padrão12Iterando sobre Sequências
Iterando sobre Elementos de VetoresUsando seq_along()Iterando sobre Caracteres (strsplit)Funções de Manipulação de Strings