Salt la conținutul principal
Modulul 2 · Lecția 2 din 24/10 în curs~12 min
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:

R
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ă).

R
# 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:

R
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.

R
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.

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

Încercați-l singur

Exercițiu#r.m2.l2.e1
Încercări: 0Se încarcă…

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”.

Se încarcă editorul...
Afișează indiciu

Scorul de verificare >= 60 e stare de atribuire <- 'Pass' o status <- 'Fail'

Soluție disponibilă după 3 încercări

Exercițiu#r.m2.l2.e2
Încercări: 0Se încarcă…

Scrieți o buclă for care iterează peste secvența 1:5 și imprimă fiecare valoare folosind funcția print().

Se încarcă editorul...
Afișează indiciu

Usa la sintassi: for (i in 1:5) { print(i) }

Soluție disponibilă după 3 încercări

Exercițiu#r.m2.l2.e3
Încercări: 0Se încarcă…

Având în vedere vectorul v, scrieți o buclă for care iterează peste fiecare element și își imprimă dublu (val * 2) folosind print().

Se încarcă editorul...
Afișează indiciu

Buclă prin elementele lui v: for (val în v) { print(val * 2) }

Soluție disponibilă după 3 încercări

Exercițiu#r.m2.l2.e4
Încercări: 0Se încarcă…

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.

Se încarcă editorul...
Afișează indiciu

Utilizați funcția: rezultate <- ifelse (scores >= 60, 'Succes', 'Fail')

Soluție disponibilă după 3 încercări

Exercițiu#r.m2.l2.e5
Încercări: 0Se încarcă…

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.

Se încarcă editorul...
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