
פרק 4 - פונקציות
מה זאת פונקציה
פונקציות הן אבני היסוד של R וניתן להגדיר את רובה המוחלט של השפה רק באמצעותן.
באופן כללי - פונקציה היא כל מניפולציה שמקבלת קלט ומוציאה פלט בהתאם.
אפשר להסתכל על פונקציה כעל קופסא סגורה - על כל קלט מסוים שנכניס לפונקציה, יצא פלט מסוים. כדי להסביר מה פונקציה עושה מספיק לתאר מה היא מקבלת כקלט (input) ומה היא מוציאה כפלט (output).
מבנה כללי
name_of_function <- function(var1, var2, var3=default_value) {
** some code **
return(var4)
}
דוגמא
נגדיר פונקציה פשוטה בשם “bigger” אשר מקבלת שני מספרים ומחזירה את הגדול מביניהם. אם המספרים שווים בגודלם, הפונקציה ,תחזיר את המספר השני.
נריץ את הפונקציה על ידי קריאה לשם שלה, יחד עם המשתנים בתוך סוגריים עגולים.
<- function(num1, num2) {
bigger if (num1 > num2) {
return(num1)
}else {
return(num2)
}
}<- bigger(24,29)
bigger_num print(paste('The bigger number is:', bigger_num))
## [1] "The bigger number is: 29"
<- bigger(57,36)
bigger_num print(paste('The bigger number is:', bigger_num))
## [1] "The bigger number is: 57"
ערכי ברירת מחדל
פונקציה יכולה לקבל פרמטרים בתור ברירת מחדל (default). המשמעות היא שכל משתנה שמוגדרת לו ברירת מחדל הופך להיות אופציונלי. כלומר, אם המשתמש לא הכניס אותו כקלט לפונקציה, הפונקציה פשוט תקבל אותו עם הערך הדיפולטי.
נגדיר שוב את הפונקציה מהדוגמא הקודמת, אך הפעם num2 יקבל את הערך 6 כברירת מחדל.
<- function(num1, num2=6) {
bigger if (num1 > num2) {
return(num1)
}else {
return(num2)
}
}<- bigger(24)
bigger_num print(paste('The bigger number is:', bigger_num))
## [1] "The bigger number is: 24"
<- bigger(3)
bigger_num print(paste('The bigger number is:', bigger_num))
## [1] "The bigger number is: 6"
# we can still change those two values!
<- bigger(num1 = 7, num2 = 8)
bigger_num print(paste('The bigger number is:', bigger_num))
## [1] "The bigger number is: 8"