רשימות עם שמות
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 74 מתוך 78.
בדומה לווקטורים בעלי שמות, אפשר להקצות שמות לאיברי רשימות. כך הקוד שלך קריא יותר, ואפשר לגשת לאיברים באמצעות תוויות בעלות משמעות במקום באמצעות מיקומים מספריים.
אפשר להקצות שמות בעת יצירת הרשימה:
person <- list(name = "Alice", age = 25, active = TRUE)
print(person)פלט:
$name
[1] "Alice"
$age
[1] 25
$active
[1] TRUEשימו לב שהפלט מציג כעת את $name במקום את [[1]]. כדי לגשת לאיברים בעלי שם, השתמשו באופרטור $:
person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)פלט:
[1] 25אפשר גם להשתמש בסוגריים כפולים עם השם כמחרוזת, וזה שימושי כשהשם מאוחסן במשתנה:
person <- list(name = "Alice", age = 25)
print(person[["name"]])פלט:
[1] "Alice"שינוי של איברים בעלי שם נעשה באותו אופן. השתמשו ב־$ כדי לשנות ערכים קיימים או להוסיף ערכים חדשים:
person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)פלט:
$name
[1] "Alice"
$age
[1] 26
$city
[1] "Paris"אתגר
קליתקבלו שלוש שורות קלט:
- שם של ספר (לדוגמה,
The Great Gatsby) - מחבר הספר (לדוגמה,
F. Scott Fitzgerald) - שנת הפרסום (לדוגמה,
1925)
בצעו את הפעולות הבאות:
- צרו רשימה בעלת שמות בשם
bookעם שלושה איברים:title,authorו-year(המירו את השנה למספר) - הדפיסו את שם הספר באמצעות האופרטור
$ - הדפיסו את שנת הספר באמצעות סוגריים כפולים, כשהשם הוא מחרוזת
- עדכנו את
yearכך שתהיה מאוחרת בשנה אחת, באמצעות האופרטור$ - הוסיפו איבר חדש בשם
availableעם הערךTRUE - הדפיסו את הרשימה המעודכנת המלאה
לדוגמה, אם הקלט הוא:
1984
George Orwell
1949הפלט אמור להיות:
[1] "1984"
[1] 1949
$title
[1] "1984"
$author
[1] "George Orwell"
$year
[1] 1950
$available
[1] TRUEהסבר:
book$titleמדפיס את ערך הכותרתbook[["year"]]מדפיס את השנה המקורית- השנה מתעדכנת מ-1949 ל-1950
- נוסף איבר חדש בשם
availableעם הערךTRUE
נסו בעצמכם
# קראו את הקלט
con <- file("stdin", "r")
title <- suppressWarnings(readLines(con, n = 1))
author <- suppressWarnings(readLines(con, n = 1))
year <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: כתבו את הקוד שלכם למטה
# 1. צרו רשימה בעלת שמות בשם 'book' עם האיברים: title, author ו־year (המירו את year למספר)
# 2. הדפיסו את כותרת הספר באמצעות האופרטור $
# 3. הדפיסו את שנת הספר באמצעות סוגריים מרובעים כפולים, כשהשם הוא מחרוזת
# 4. עדכנו את השנה כך שתהיה מאוחרת בשנה אחת באמצעות האופרטור $
# 5. הוסיפו איבר חדש בשם 'available' עם הערך TRUE
# 6. הדפיסו את הרשימה המעודכנת במלואההשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין