Lecții din modul (2/2)
Condiționale și bucle
Pentru a implementa algoritmi și proceduri complexe în R, trebuie să fiți capabil să controlați ce instrucțiuni să executați și de câte ori să le repetați.
Declarații condiționale
În R, structura condițională fundamentală se bazează pe if și else. Sintaxa este foarte asemănătoare cu limbaje precum JavaScript sau C:
score <- 85
if (score >= 60) {
print("Passed!")
} else {
print("Failed.")
}Acolade {} definesc blocurile de cod de rulat în funcție de rezultatul expresiei booleene din paranteze.
Bucla for
Bucla for din R este folosită pentru a itera elementele dintr-o secvență (cum ar fi un vector sau o listă).
# Print numbers from 1 to 3
for (i in 1:3) {
print(i)
}În R, sintaxa 1:3 este o modalitate scurtă de a crea vectorul c(1, 2, 3).
De asemenea, putem bucla direct peste elementele unui vector existent:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Funcția ifelse
În R, funcția ifelse() este o versiune vectorizată a instrucțiunii if-else. Vă permite să aplicați o condiție unui întreg vector într-o singură operație, returnând un vector de rezultate.
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"Bucla while
Bucla while este utilizată pentru a repeta un bloc de cod atâta timp cât o anumită condiție rămâne adevărată (TRUE). Este esențial să ne asigurăm că condiția devine în cele din urmă falsă pentru a preveni bucle infinite.
counter <- 1
while (counter <= 3) {
print(counter)
counter <- counter + 1
}Încercați-l singur
Scrieți o declarație condiționată if-else care verifică dacă scorul variabilei este mai mare sau egal cu 60. Dacă este, setați starea la „Succes”, în caz contrar setați-o la „Eșuat”.
Afișează indiciu
Scorul de verificare >= 60 e stare de atribuire <- 'Pass' o status <- 'Fail'
Soluție disponibilă după 3 încercări
Scrieți o buclă for care iterează peste secvența 1:5 și imprimă fiecare valoare folosind funcția print().
Afișează indiciu
Usa la sintassi: for (i in 1:5) { print(i) }
Soluție disponibilă după 3 încercări
Având în vedere vectorul v, scrieți o buclă for care iterează peste fiecare element și își imprimă dublu (val * 2) folosind print().
Afișează indiciu
Buclă prin elementele lui v: for (val în v) { print(val * 2) }
Soluție disponibilă după 3 încercări
Având în vedere scorurile vectoriale, utilizați funcția ifelse() pentru a verifica care elemente sunt mai mari sau egale cu 60. Salvați rezultatul (care va conține „Pass” sau „Fail” pentru fiecare element) în rezultatele variabilei.
Afișează indiciu
Utilizați funcția: rezultate <- ifelse (scores >= 60, 'Succes', 'Fail')
Soluție disponibilă după 3 încercări
Utilizați o buclă while pentru a dubla valoarea lui x până când aceasta depășește 50. De asemenea, creșteți variabila contor la fiecare iterație.
Afișează indiciu
Utilizați o buclă while (x <= 50) și actualizați atât x, cât și contorul în interiorul acoladelor.
Soluție disponibilă după 3 încercări