
פרק 1 - משתנים
משתנה - כשמו כן הוא - אובייקט שיכול להשתנות.
ניתן לחשוב על משתנה כעל מגירה, מיקום בזיכרון עם שם. בכל פעם שננסה לגשת לאותו מיקום ע”י קריאה בשמו, נקבל חזרה את מה שנמצא בו (או - את מה שנמצא בתוך המגירה)
ניתן להגדיר משתנים ולשנות אותם בצורה הבאה:
פעולה הנקראת הֲשָׂמָה (Assignment)
var_name <- value
כשנכתוב שם לא בתוך גרשיים, R ידע להתייחס אליו כאל משתנה, וינסה לגשת אליו.
אם המשתנה קיים (כלומר מוגדר ומכיל ערך מסוים), גישה אליו תחזיר את ערכו.
אם הוא לא קיים, תקפוץ שגיאה.
<- 2 # initial assignment
var1 print(var1)
## [1] 2
# we can change the value and the type of a variable
<- 'different value!'
var1 print(var1)
## [1] "different value!"
print(var2) # not exist
## Error in print(var2): object 'var2' not found
character
אובייקט שמורכב מרצף של תווים (אותיות, מספרים, סמלים). נמצא בתוך גרשיים.
בדוגמאות הבאות נגדיר משתנים שיכילו ערכים מסוג character:
<- "this is a character!"
text_var class(text_var)
## [1] "character"
<- 'this is also a character!'
text_var2 # mixing single quotes and double quotes to implement
# quotes into the character
<- "it's still a character!"
text_var3 <- 'Mark Twain said:
text_var4 "I am an old man and have known a great many troubles,
but most of them never happened."'
numeric
אובייקט שמכיל ערך מספרי, עם או בלי נקודה עשרונית.
דוגמאות:
<- 14.6
numeric_var class(numeric_var)
## [1] "numeric"
<- 13 numeric_var2
הערה: שמות של משתנים לא יכולים להתחיל במספר משום ש-R יזהה אותם כ-numeric.
NaN הוא אובייקט נומרי שמשמעותו היא Not a Number. לדוגמא, חלוקה ב0 תחזיר NaN:
<- 0/0
nan_val print(nan_val)
## [1] NaN
class(nan_val)
## [1] "numeric"
logical
אובייקט שמכיל את הערך TRUE או את הערך FALSE. שני שמות אלו הם ערכים שמורים בשפת R ויש להם הגדרה משל עצמם. כלומר, כשנכתוב FALSE בתוך הקוד, R ידע להתייחס לזה כאל הערך הלוגי FALSE.
לעומת זאת - אם נכתוב False, או false במקום, R יחפש משתנים בשמות האלו.
אם נכתוב ‘FALSE’ או “FALSE” (בתוך גרשיים), R יתייחס לזה כאל character.
NA הוא אובייקט לוגי שמשמעותו היא Not Available. כלומר, מייצג ערך חסר.
דוגמאות:
<- FALSE
logical_var print(logical_var)
## [1] FALSE
class(logical_var)
## [1] "logical"
<- (1 == 1) # returns TRUE
logical_var2 print(logical_var2)
## [1] TRUE
class(logical_var2)
## [1] "logical"
<- NA
logical_var_3 print(logical_var_3)
## [1] NA
class(logical_var_3)
## [1] "logical"