Guida per i principianti: presa di decisioni in R

Ciao, futuri programmatori R! Sono entusiasta di essere il vostro guida in questo emozionante viaggio nel mondo della presa di decisioni in R. Come qualcuno che ha insegnato scienze informatiche per anni, ho visto centinaia di studenti illuminarsi quando hanno compreso questi concetti. Allora, entriamo nel dettaglio e facciamo qualche decisione!

R - Decision Making

Cos'è la presa di decisioni nella programmazione?

Prima di immergerci nei dettagli specifici di R, parliamo di cosa significa prendere decisioni nella programmazione. Immagina di essere in una gelateria. Non prendi il primo gusto che vedi, vero? Fai una decisione basata sulle tue preferenze. La programmazione è simile - vogliamo che il nostro codice faccia scelte basate su determinate condizioni.

Presa di decisioni di base in R: l'istruzione if

La sintassi

Iniziamo con lo strumento di prendere decisioni più fondamentale in R: l'istruzione if. Ecco la sua struttura di base:

if (condizione) {
# Codice da eseguire se la condizione è VERA
}

Un esempio semplice

Supponiamo di voler controllare se un numero è positivo. Ecco come faremmo:

x <- 5
if (x > 0) {
print("x è positivo")
}

Quando esegui questo codice, vedrai "x è positivo" essere stampato. Perché? Perché 5 è effettivamente maggiore di 0, quindi la condizione x > 0 è VERA.

Aggiungere una clausola else

Ma cosa succede se vogliamo fare qualcosa quando la condizione è FALSA? È qui che entra in gioco la clausola else:

x <- -3
if (x > 0) {
print("x è positivo")
} else {
print("x non è positivo")
}

Eseguendo questo, vedrai "x non è positivo". La clausola else ci offre un modo per gestire il caso FALSO.

Decisioni più complesse: else if

A volte, la vita (e la programmazione) non è solo bianco o nero. Potrebbe essere necessario controllare più condizioni. Ecco entra in gioco else if:

x <- 0
if (x > 0) {
print("x è positivo")
} else if (x < 0) {
print("x è negativo")
} else {
print("x è zero")
}

Questo codice controlla se x è positivo, negativo o zero. È come un libro "scegli la tua avventura" per i numeri!

L'istruzione switch potente

Quando hai più casi specifici da controllare, l'istruzione switch può essere il tuo migliore amico. È come una macchina automatica per l'esecuzione del codice:

giorno <- "Lunedì"
umore <- switch(giorno,
"Lunedì" = "Serve caffè",
"Venerdì" = "TGIF!",
"È una giornata normale"
)
print(umore)

Questo stamperà "Serve caffè". L'istruzione switch confronta il valore di giorno con le opzioni e restituisce il valore corrispondente.

Esecuzione condizionale con ifelse()

R ha una funzione comoda chiamata ifelse() che combina un'istruzione if-else in una singola linea:

x <- 10
risultato <- ifelse(x > 5, "Maggiore di 5", "Non maggiore di 5")
print(risultato)

Questo stamperà "Maggiore di 5". La funzione ifelse() è grande per condizioni rapide e semplici.

Operatori di confronto: i mattoni delle condizioni

Per fare decisioni, dobbiamo confrontare valori. Ecco gli operatori di confronto in R:

Operatore Significato
< Minore di
> Maggiore di
<= Minore o uguale a
>= Maggiore o uguale a
== Uguale a
!= Diverso da

Per esempio:

a <- 5
b <- 10
print(a < b)  # VERA
print(a == b) # FALSA

Operatori logici: combinare condizioni

A volte, dobbiamo controllare più condizioni contemporaneamente. È qui che entrano in gioco gli operatori logici:

Operatore Significato
& AND
| OR
! NOT

Ecco come potresti usarli:

età <- 25
ha_patente <- TRUE

if (età >= 18 & ha_patente) {
print("Puoi guidare")
} else {
print("Non puoi guidare")
}

Questo controlla se qualcuno ha sia l'età legale AND la patente prima di permettergli di guidare.

Mettere tutto insieme: un esempio del mondo reale

Creiamo un sistema di valutazione semplice:

grade_student <- function(score) {
if (score >= 90) {
return("A")
} else if (score >= 80) {
return("B")
} else if (score >= 70) {
return("C")
} else if (score >= 60) {
return("D")
} else {
return("F")
}
}

# Proviamo la nostra funzione
students <- c("Alice", "Bob", "Charlie")
scores <- c(95, 82, 65)

for (i in 1:length(students)) {
grade <- grade_student(scores[i])
print(paste(students[i], "ha ottenuto un voto di", grade))
}

Questo script definisce una funzione per assegnare voti letterali basati su voti numerici, poi lo applica a una lista di studenti.

Conclusione

Complimenti! Hai appena fatto i tuoi primi passi nel mondo della presa di decisioni in R. Ricorda, come ogni nuova abilità, la pratica rende perfetti. Non aver paura di sperimentare con questi concetti - è così che avviene l'apprendimento vero!

Negli anni di insegnamento, ho scoperto che gli studenti che giocano con il codice, rompono le cose e poi le riparano di nuovo tendono a comprendere i concetti molto più profondamente. Quindi vai avanti, prendi decisioni (nel tuo codice) e divertiti!

Credits: Image by storyset