דילוג לתוכן המרכזי
מודול 2 · שיעור 2 מתוך 24/10 בקורס~12 min
שיעורי מודול (2/2)

תנאים ולולאות

כדי ליישם אלגוריתמים ונהלים מורכבים ב-R, אתה צריך להיות מסוגל לשלוט אילו הוראות לבצע וכמה פעמים לחזור עליהן.

הצהרות מותנות

ב-R, המבנה התנאי הבסיסי מבוסס על if וelse. התחביר דומה מאוד לשפות כמו JavaScript או C:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

סוגרים מתולתלים {} מגדירים את גושי הקוד שיופעלו בהתאם לתוצאה של הביטוי הבוליאני בתוך סוגריים.

לולאת for

הלולאה for ב-R משמשת לחזרה על אלמנטים ברצף (כגון וקטור או רשימה).

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

ב-R, תחביר 1:3 הוא דרך קיצור ליצירת הווקטור c(1, 2, 3).

אנחנו יכולים גם בלולאה ישירות מעל האלמנטים של וקטור קיים:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

הפונקציה ifelse

ב-R, הפונקציה ifelse() היא גרסה וקטורית של המשפט if-else. זה מאפשר לך להחיל תנאי על וקטור שלם בפעולה אחת, ולהחזיר וקטור של תוצאות.

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"

לולאת while

לולאת while משמשת כדי לחזור על גוש קוד כל עוד תנאי ספציפי נשאר נכון (TRUE). חיוני להבטיח שהמצב בסופו של דבר יהפוך לשקר כדי למנוע לולאות אינסופיות.

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

נסה זאת בעצמך

פעילות גופנית#r.m2.l2.e1
ניסיונות: 0טוען...

כתוב משפט מותנה if-else שבודק אם הציון המשתנה גדול מ-60 או שווה ל-60. אם כן, הגדר את המצב ל'עובר', אחרת הגדר אותו ל'נכשל'.

טוען עורך...
הצג רמז

ציון אימות >= 60 e status <- 'עבר' או סטטוס <- 'נכשל'

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m2.l2.e2
ניסיונות: 0טוען...

כתוב לולאת for החוזרת על הרצף 1:5 ומדפיס כל ערך באמצעות הפונקציה print() .

טוען עורך...
הצג רמז

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

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m2.l2.e3
ניסיונות: 0טוען...

בהינתן הווקטור v, כתוב לולאת for החוזרת על כל אלמנט ומדפיסה את הכפול שלו (val * 2) באמצעות print().

טוען עורך...
הצג רמז

גלגל דרך אלמנטים של v: for (val in v) { print(val * 2) }

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m2.l2.e4
ניסיונות: 0טוען...

בהינתן ציוני הווקטור, השתמש בפונקציה ifelse() כדי לבדוק אילו אלמנטים גדולים מ-60 או שווים ל-60. שמור את התוצאה (שתכיל 'עובר' או 'נכשל' עבור כל אלמנט) בתוצאות המשתנים.

טוען עורך...
הצג רמז

השתמש בפונקציה: results <- ifelse(ציונים >= 60, 'עבר', 'נכשל')

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m2.l2.e5
ניסיונות: 0טוען...

השתמש בלולאת while כדי להכפיל את הערך של x עד שהוא עולה על 50. הגדל גם את משתנה המונה בכל איטרציה.

טוען עורך...
הצג רמז

השתמש בלולאת while (x <= 50) ועדכן גם את x וגם את המונה בתוך הפלטה המתולתלת.

הפתרון זמין לאחר 3 ניסיונות