Lógica Vetorizada Parte 1
Parte da seção Fundamentos do Journey de R da Coddy — lição 20 de 78.
O R possui duas versões dos operadores AND e OR. Você aprendeu sobre && e ||, que funcionam com valores únicos. Agora vamos explorar suas contrapartes vetorizadas: & e | (símbolos únicos).
A principal diferença é que & e | comparam valores elemento por elemento ao trabalhar com múltiplos valores:
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
a & b # TRUE FALSE FALSE FALSE
a | b # TRUE TRUE TRUE FALSECada posição é comparada independentemente. Na primeira posição, ambos a e b são TRUE, então a & b retorna TRUE. Na segunda posição, a é TRUE mas b é FALSE, então a & b retorna FALSE.
Isso se torna poderoso quando combinado com operadores de comparação:
scores <- c(85, 42, 91, 67, 55)
# Verificar quais pontuações estão entre 50 e 80
scores >= 50 & scores <= 80 # FALSE FALSE FALSE TRUE TRUEO resultado é um vetor de valores lógicos mostrando quais elementos atendem a ambas as condições. Este comportamento elemento a elemento (element-wise) é essencial para filtrar e analisar dados em R.
Desafio
FácilUse os operadores vetorizados AND (&) e OR (|) para realizar comparações elemento a elemento em vetores.
Você recebeu os seguintes vetores:
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)Use operadores lógicos vetorizados para criar os seguintes vetores lógicos:
- Crie um vetor chamado
comfortable_tempque armazeneTRUEpara cada temperatura que seja maior ou igual a 20 E menor ou igual a 30 - Crie um vetor chamado
high_humidityque armazeneTRUEpara cada valor de umidade que seja maior que 70 - Crie um vetor chamado
pleasant_dayque armazeneTRUEpara cada dia onde a temperatura esteja entre 20 e 30 (inclusive) E a umidade seja menor ou igual a 60 - Crie um vetor chamado
extreme_weatherque armazeneTRUEpara cada dia onde a temperatura seja maior que 30 OU a umidade seja maior que 80 - Crie um vetor chamado
stay_insideque armazeneTRUEpara cada dia onde a temperatura seja menor que 18 OU (a temperatura seja maior que 30 E a umidade seja maior que 70)
Use a função print() para exibir comfortable_temp, high_humidity, pleasant_day, extreme_weather e stay_inside exatamente nessa ordem.
Folha de consulta
O R possui duas versões dos operadores AND e OR:
&&e||funcionam com valores únicos&e|são operadores vetorizados que comparam valores elemento por elemento
Os operadores vetorizados & e | comparam cada posição de forma independente:
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
a & b # TRUE FALSE FALSE FALSE
a | b # TRUE TRUE TRUE FALSEOperadores vetorizados são poderosos quando combinados com operadores de comparação:
scores <- c(85, 42, 91, 67, 55)
# Verificar quais pontuações estão entre 50 e 80
scores >= 50 & scores <= 80 # FALSE FALSE FALSE TRUE TRUEO resultado é um vetor de valores lógicos mostrando quais elementos atendem às condições.
Experimente você mesmo
# Vetores fornecidos
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)
# TODO: Escreva seu código abaixo
# 1. Crie comfortable_temp: TRUE quando temp >= 20 E temp <= 30
# 2. Crie high_humidity: TRUE quando humidity > 70
# 3. Crie pleasant_day: TRUE quando temp está entre 20-30 E humidity <= 60
# 4. Crie extreme_weather: TRUE quando temp > 30 OU humidity > 80
# 5. Crie stay_inside: TRUE quando temp < 18 OU (temp > 30 E humidity > 70)
# Imprimir os resultados
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)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ão