שיעורי מודול (2/2)
תנאים ולולאות
כדי ליישם אלגוריתמים ונהלים מורכבים ב-R, אתה צריך להיות מסוגל לשלוט אילו הוראות לבצע וכמה פעמים לחזור עליהן.
הצהרות מותנות
ב-R, המבנה התנאי הבסיסי מבוסס על if וelse. התחביר דומה מאוד לשפות כמו JavaScript או C:
score <- 85
if (score >= 60) {
print("Passed!")
} else {
print("Failed.")
}סוגרים מתולתלים {} מגדירים את גושי הקוד שיופעלו בהתאם לתוצאה של הביטוי הבוליאני בתוך סוגריים.
לולאת for
הלולאה for ב-R משמשת לחזרה על אלמנטים ברצף (כגון וקטור או רשימה).
# Print numbers from 1 to 3
for (i in 1:3) {
print(i)
}ב-R, תחביר 1:3 הוא דרך קיצור ליצירת הווקטור c(1, 2, 3).
אנחנו יכולים גם בלולאה ישירות מעל האלמנטים של וקטור קיים:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}הפונקציה ifelse
ב-R, הפונקציה ifelse() היא גרסה וקטורית של המשפט if-else. זה מאפשר לך להחיל תנאי על וקטור שלם בפעולה אחת, ולהחזיר וקטור של תוצאות.
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). חיוני להבטיח שהמצב בסופו של דבר יהפוך לשקר כדי למנוע לולאות אינסופיות.
counter <- 1
while (counter <= 3) {
print(counter)
counter <- counter + 1
}נסה זאת בעצמך
כתוב משפט מותנה if-else שבודק אם הציון המשתנה גדול מ-60 או שווה ל-60. אם כן, הגדר את המצב ל'עובר', אחרת הגדר אותו ל'נכשל'.
הצג רמז
ציון אימות >= 60 e status <- 'עבר' או סטטוס <- 'נכשל'
הפתרון זמין לאחר 3 ניסיונות
כתוב לולאת for החוזרת על הרצף 1:5 ומדפיס כל ערך באמצעות הפונקציה print() .
הצג רמז
Usa la sintassi: for (i in 1:5) { print(i) }
הפתרון זמין לאחר 3 ניסיונות
בהינתן הווקטור v, כתוב לולאת for החוזרת על כל אלמנט ומדפיסה את הכפול שלו (val * 2) באמצעות print().
הצג רמז
גלגל דרך אלמנטים של v: for (val in v) { print(val * 2) }
הפתרון זמין לאחר 3 ניסיונות
בהינתן ציוני הווקטור, השתמש בפונקציה ifelse() כדי לבדוק אילו אלמנטים גדולים מ-60 או שווים ל-60. שמור את התוצאה (שתכיל 'עובר' או 'נכשל' עבור כל אלמנט) בתוצאות המשתנים.
הצג רמז
השתמש בפונקציה: results <- ifelse(ציונים >= 60, 'עבר', 'נכשל')
הפתרון זמין לאחר 3 ניסיונות
השתמש בלולאת while כדי להכפיל את הערך של x עד שהוא עולה על 50. הגדל גם את משתנה המונה בכל איטרציה.
הצג רמז
השתמש בלולאת while (x <= 50) ועדכן גם את x וגם את המונה בתוך הפלטה המתולתלת.
הפתרון זמין לאחר 3 ניסיונות