Menu
CoddyTech

לוגיקה וקטורית חלק 2

חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 21 מתוך 78.

בדומה ל-AND ול-OR, שיש להם גרסאות וקטוריות, גם האופרטור NOT פועל איבר-איבר על וקטורים. כשמחילים את ! על וקטור של ערכים לוגיים, הוא הופך כל איבר בנפרד.

passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed  # FALSE TRUE FALSE TRUE

כל TRUE הופך ל-FALSE, וכל FALSE הופך ל-TRUE. הדבר שימושי במיוחד כשרוצים למצוא פריטים שאינם עומדים בתנאי מסוים:

temperatures <- c(18, 25, 30, 15, 22)

# מצאו טמפרטורות שאינן מעל 20
!(temperatures > 20)  # TRUE FALSE FALSE TRUE FALSE

אפשר לשלב את NOT הווקטורי עם & ועם | כדי לבנות מסננים מורכבים:

ages <- c(16, 25, 17, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)

# ניתן להשתתף אם: גיל >= 18 OR (מתחת לגיל 18 AND יש אישור)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUE

זכרו: השתמשו ב־&, ב־| וב־! יחידים כשעובדים עם וקטורים, וב־&& וב־|| כפולים כשמשווים ערכים בודדים.

challenge icon

אתגר

קל

השתמשו באופרטור הווקטורי NOT‏ (!) יחד עם & ועם | כדי ליצור תנאים לוגיים מורכבים שפועלים על כל איבר בנפרד.

הווקטורים הבאים נתונים לכם:

scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)

השתמשו באופרטורים לוגיים וקטוריים, כולל האופרטור NOT, כדי ליצור את הווקטורים הלוגיים הבאים:

  1. צרו וקטור בשם failed ששומר TRUE עבור כל ציון שאינו גדול או שווה ל־60
  2. צרו וקטור בשם absent ששומר את ההפך מ־attended (הפכו כל ערך)
  3. צרו וקטור בשם at_risk ששומר TRUE עבור כל תלמיד שלא נכח או שלא הגיש שיעורי בית
  4. צרו וקטור בשם passing_but_absent ששומר TRUE עבור כל תלמיד שהציון שלו גדול או שווה ל־60 וגם לא נכח
  5. צרו וקטור בשם needs_support ששומר TRUE עבור כל תלמיד שעבורו: (הציון נמוך מ־50) או (לא נכח וגם לא הגיש שיעורי בית)

השתמשו בפונקציה print() כדי להציג את failed, את absent, את at_risk, את passing_but_absent ואת needs_support, בדיוק בסדר הזה.

נסו בעצמכם

# וקטורים נתונים
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)

# TODO: כתבו את הקוד שלכם למטה
# 1. צרו את 'failed' - TRUE עבור ציונים שאינם >= 60

# 2. צרו את 'absent' - הערך ההפוך של attended

# 3. צרו את 'at_risk' - NOT attended OR NOT submitted_homework

# 4. צרו את 'passing_but_absent' - score >= 60 AND NOT attended

# 5. צרו את 'needs_support' - (score < 50) OR (NOT attended AND NOT submitted_homework)

# הדפיסו את התוצאות
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר R אונליין