רשימות עם שמות
חלק מהיחידה יסודות במסלול ה-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. עדכנו את השנה כך שתהיה מאוחרת ב-1 באמצעות האופרטור $
# 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 אונליין