תרגול 1

R בסיסי

1

יהיו:

x <- 'whatever'
y <- 'dude'

כתבו קוד R אשר מחליף את התוכן של x ו-y וודאו שהחילוף אכן התבצע בסביבת העבודה.

2

הריצו את ההשמות הבאות:

x <- pi
y <- 0

כעת הסבירו מה ההבדל בין x/y ו-y/x על ידי הרצת הפקודות האלו תוך הישענות על הגיון מתמטי. בנוסף, הסבירו מה קורה כאשר מריצים את y/y.

3

בשורת התפריט גשו ל:

Tools \(\to\) Global Options \(\to\) Code \(\to\) Display

וסמנו את התיבה שליד אפשרות הסוגריים הצבעוניים (use rainbow parentheses).

4

ודאו שמתקיים כי \(e^7 > \pi^6\) (כאשר \(e = 2.71828...\), בסיס הלוגריתם הטבעי) על ידי הדפסת ערך לוגי הנובע מהשוואת שני מספרים אלו. התשמשו בפקודה exp(1) כדי לקבל את הערך של המספר \(e\).

5

הדגימו כיצד אפשר למחוק משתנה אחד ואת כל המשתנים בסביבת העבודה. רמז: אפשר להשתמש בפקודה rm() עם משתנה יחיד כדי למחוק אותו.

var1 <- 1
var2 <- 2
  • הסירו את המשתנה var1.
  • נקו את סביבת העבודה וודאו שהמשתנים var1 ו-var2 לא קיימים.

וקטורים - יסודות

יהי:

x <- c(6, 30, 19, -4, 3, 5, -2, -14)

1

מה מספר האיברים ב-x?

2

מהו האיבר הקטן ביותר של x?

3

מהו האיבר הגדול ביותר של x?

4

חשבו את הסכום של \(x^2\).

5

שלפו את האיבר השלישי של x.

6

שלפו את האיברים במקומות האי-זוגיים ב-x (כלומר האיבר ה-1,3,5 וכו׳)

Extract the odd-indexed elements of x (1,3,5-th,… places).

7

חשבו את השורש הריבועי של מכפלת איברי x.

8

מיינו את איברי x בסדר עולה.

9

מיינו את איברי x בסדר יורד.

10

שלפו תת-וקטור שבו רק האיברים השליליים ב-x.

11

חשבו את הפרופורציה של האיברים השליליים ב-x.

12

אתרו את האינדקסים של הערכים הקיצוניים (מינימום ומקסימום) של x.

יצירת וקטורים

1

יצרו את הוקטור הבא: 1 2 3 4 5 6 7 6 5 4 3 2 1.

2

יצרו את הסדרה 1, 3, 5, ..., 39 ושמרו אותה במשתנה x.

3

יצרו סדרה מ-1 עד 99 עם 9 איברים בקפיצות שוות.

4

יהיו hw <- 95 ו- exam <- 90 ציוני המבחן ושיעורי הבית של סטודנט. כתבו פקודה אשר מחשבת את הציון הסופי כאשר למבחן משקל של 85% ולשיעורי הבית משקל 15%.

5

בהמשך לשאלה הקודמת, יהיו: hw <- c(95,100, 90, 85, 0, 90, 90) ו- exam <- c(90,100, 80, 81, 75, 60, 80). השימו את הציונים הסופיים לתוך משתנה בשם grades. ציון ״עובר״ הוא 65. עגלו את הציונים המתקבלים למספרים שלמים באמצעות הפקודה round(). הדפיסו את הציונים לפני ואחרי העיגול. האם הבחנתם במשהו מפתיע?1

שימוש בוקטורים

1

נתונים וקטורים של מחירים וכמויות של מוצרים שנרכשו. חשבו את סך ההוצאה על כלל הרכישה והסבירו כיצד פעולות וקטוריות עוזרות לפשט חישובים כאלו.

prices <- c(0.99, 2.49, 1.59, 3.99, 0.89) 
quantities <- c(2, 1, 3, 2, 4) 

2

נתון וקטור עם מחירים חודשיים של סחורה מסוימת. נתחו את שינווי המחיר על ידי חישוב הערכים הבאים:

  • החודש שבו המחיר מרבי.
  • החודש שבו המחיר מזערי.
  • המחיר הממוצע לאורך השנה.
  • שונות המחיר שמשקפת את התנודתיות.

למתקדמים: השתמשו בוקטור המובנה month.name כדי להדפיס את שמות החודשים שבהם המחירים היו קיצוניים.

3

התל״ג של מדינה כלשהי בעשור האחרון נתון בוקטור הבא:

חשבו את שיעור הצמיחה השנתי על ידי שימוש בנוסחה הבאה:

\[y_{i+1} = 100\% \cdot \frac{x_{i+1}- x_i}{x_i} \]

כאשר \(y_t\) הוא שיעור הצמיחה בשנה \(t\) ו- \(x_t\) הוא התל״ג בשנה \(t\).

רמז: השתמשו בפקודה diff() כדי לחשב את המונה. שימו לב שמהנתונים הבאים יתקבלו 9 ולא 10 שיעורי צמיחה שנתיים.

כלל המיחזור

1

יצרו את הוקטור 1 -2 3 -4 5 -6 7 -8 9 -10 11 -12 והשימו אותו למשתנה y.

2

הוסיפו 1 רק לאיברים שנמצאים במקומות הזוגיים ב-y (כלומר רק ל-2,-4,-6, וכו׳)

3

הסבירו מה קורה כאשר מריצים את הפקודה הבאה:

1:10 + 1:4

Footnotes

  1. כלל העיגול עבור .5 ב-R הוא בתקן IEC 60599 אשר אומר ״לעגל לספרה הזוגית הקרובה ביותר. ראו את העזרה על ידי הרצת ?round.↩︎