Logica vettorializzata Parte 2
Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 21 di 78.
Proprio come AND e OR hanno versioni vettorializzate, anche l’operatore NOT agisce elemento per elemento sui vettori. Quando applichi ! a un vettore di valori logici, inverte ogni elemento individualmente.
passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed # FALSE TRUE FALSE TRUEOgni TRUE diventa FALSE e ogni FALSE diventa TRUE. Questo è particolarmente utile quando vuoi trovare gli elementi che non soddisfano una certa condizione:
temperatures <- c(18, 25, 30, 15, 22)
# Trova le temperature che NON superano 20
!(temperatures > 20) # TRUE FALSE FALSE TRUE FALSEPuoi combinare il NOT vettorializzato con & e | per creare filtri complessi:
ages <- c(16, 25, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)
# Può partecipare se: età >= 18 O (età inferiore a 18 E ha il permesso)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUERicorda: usa &, | e ! singoli quando lavori con i vettori, e &&, || doppi quando confronti singoli valori.
Sfida
FacileUsa l'operatore NOT vettorializzato (!) insieme a & e | per creare condizioni logiche complesse elemento per elemento.
Ti vengono forniti i seguenti vettori:
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)Usa operatori logici vettorializzati, incluso l'operatore NOT, per creare i seguenti vettori logici:
- Crea un vettore chiamato
failedche memorizziTRUEper ogni punteggio che NON è maggiore o uguale a 60 - Crea un vettore chiamato
absentche memorizzi il contrario diattended(inverti ogni valore) - Crea un vettore chiamato
at_riskche memorizziTRUEper ogni studente che NON ha frequentato O NON ha consegnato i compiti - Crea un vettore chiamato
passing_but_absentche memorizziTRUEper ogni studente con un punteggio maggiore o uguale a 60 che E NON ha frequentato - Crea un vettore chiamato
needs_supportche memorizziTRUEper ogni studente per cui: (il punteggio è inferiore a 50) O (NON ha frequentato E NON ha consegnato i compiti)
Usa la funzione print() per visualizzare failed, absent, at_risk, passing_but_absent e needs_support, esattamente in quest'ordine.
Provalo tu
# Vettori forniti
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)
# TODO: Scrivi il tuo codice qui sotto
# 1. Crea 'failed' - TRUE per i punteggi che NON sono >= 60
# 2. Crea 'absent' - il contrario di attended
# 3. Crea 'at_risk' - NOT attended OR compiti non consegnati
# 4. Crea 'passing_but_absent' - punteggio >= 60 AND NOT attended
# 5. Crea 'needs_support' - (punteggio < 50) OR (NOT attended AND compiti non consegnati)
# Stampa i risultati
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici (AND, OR)Operatori logici Parte 2 (NOT)Ripasso - Logica sempliceLogica vettorializzata Parte 1Logica vettorializzata Parte 27Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dell'utente10FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz13Vettori: argomenti avanzati
Slicing e indicizzazione dei vettoriIndicizzazione logicaAritmetica dei vettori e ricicloL’operatore %in%2Variabili e tipi di dati
Tipo di dato numericoTipo di dato interoTipo di dato carattereTipo di dato logicoControllo dei tipi di datoConvenzioni di denominazioneValori mancanti: NARiepilogo - Creazione di variabili8Cicli
Ciclo forCiclo whilebreaknext (continue)Riepilogo - FattorialeGenerazione di sequenze (seq, :)Cicli annidatiRiepilogo - Input dinamico3Operatori Parte 1
Operatori aritmeticiDivisione intera e moduloOperatori di assegnazioneRiepilogo - Matematica sempliceOperatori di confronto6I/O di base
Stampare l'outputcat per l'outputOutput con variabiliLeggere l'input con readline()Nozioni di base sulla conversione dei tipiRiepilogo - Calcolatore dell'etàRiepilogo - Vero o falso9Funzioni
Dichiarare una funzioneArgomenti della funzioneValori di ritornoRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti dei parametriEsercitati da solo: Compilatore R online