Menu
Coddy logo textTech

לוגיקה וקטורית חלק 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, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)

# ניתן להשתתף אם: הגיל >= 18 או (הגיל מתחת ל-18 ויש אישור)
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' - ציון >= 60 AND NOT attended

# 5. צרו את 'needs_support' - (ציון < 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 אונליין