ערכי ברירת מחדל לפרמטרים
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 51 מתוך 78.
לפעמים רוצים שפונקציה תתנהג באופן ״סטנדרטי״ שאפשר להתאים אישית כשצריך. ערכי ברירת מחדל לפרמטרים מאפשרים להגדיר מה יהיה ערכו של פרמטר אם מי שקורא לפונקציה לא מספק אותו.
מגדירים ערך ברירת מחדל באמצעות = בהגדרת הפונקציה:
greet <- function(name = "Guest") {
print(paste("Hello,", name))
}
greet()
greet("Alice")פלט:
[1] "Hello, Guest"
[1] "Hello, Alice"כשקוראים לה ללא ארגומנט, הפונקציה משתמשת ב־"Guest" כברירת מחדל. כשמספקים ערך, הוא מחליף את ברירת המחדל.
אפשר לשלב פרמטרים נדרשים ואופציונליים. פרמטרים עם ערכי ברירת מחדל צריכים לבוא אחרי אלה שאין להם ערכי ברירת מחדל:
calculate_total <- function(price, tax_rate = 0.1) {
return(price + (price * tax_rate))
}
print(calculate_total(100))
print(calculate_total(100, 0.2))פלט:
[1] 110
[1] 120כאן, price הוא פרמטר חובה, ואילו tax_rate מקבל כברירת מחדל את הערך 10%. כך הפונקציות שלך גמישות — פשוטות לשימוש במקרים נפוצים, אך ניתנות להתאמה אישית כשצריך.
אתגר
קלצרו פונקציה בשם calculate_shipping שמקבלת שני ארגומנטים:
weight- משקל החבילה (חובה)rate- העלות ליחידת משקל (אופציונלי, ברירת המחדל היא5)
הפונקציה צריכה להחזיר את עלות המשלוח, שמחושבת כך: weight * rate.
תקבלו שתי שורות קלט:
- ערך של משקל
- ערך של תעריף או המילה
default
אם הקלט השני הוא default, קראו לפונקציה עם המשקל בלבד (תוך שימוש בתעריף ברירת המחדל). אחרת, קראו לפונקציה עם המשקל ועם התעריף שסופק.
הדפיסו את התוצאה שהוחזרה.
לדוגמה, אם הקלט הוא:
10
defaultהפלט צריך להיות:
[1] 50אם הקלט הוא:
10
3הפלט צריך להיות:
[1] 30נסו בעצמכם
# קראו את הקלט
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: כתבו את הקוד שלכם למטה
# 1. הגדירו את הפונקציה calculate_shipping עם weight (פרמטר חובה) ו-rate (פרמטר אופציונלי, ערך ברירת מחדל = 5)
# 2. בדקו אם rate_input הוא "default" או מספר
# 3. קראו לפונקציה באופן המתאים והדפיסו את התוצאההשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין