לוגיקה וקטורית חלק 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זכרו: השתמשו ב־&, ב־| וב־! יחידים כשעובדים עם וקטורים, וב־&& וב־|| כפולים כשמשווים ערכים בודדים.
אתגר
קלהשתמשו באופרטור הווקטורי 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, כדי ליצור את הווקטורים הלוגיים הבאים:
- צרו וקטור בשם
failedששומרTRUEעבור כל ציון שאינו גדול או שווה ל־60 - צרו וקטור בשם
absentששומר את ההפך מ־attended(הפכו כל ערך) - צרו וקטור בשם
at_riskששומרTRUEעבור כל תלמיד שלא נכח או שלא הגיש שיעורי בית - צרו וקטור בשם
passing_but_absentששומרTRUEעבור כל תלמיד שהציון שלו גדול או שווה ל־60 וגם לא נכח - צרו וקטור בשם
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)השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין