דילוג לתוכן המרכזי
מודול 3 · שיעור 2 מתוך 26/10 בקורס~15 min
שיעורי מודול (2/2)

חקירה ואגרגציה

R נוצרה בעיקר כסביבה סטטיסטית, ולכן היא מספקת פונקציות מובנות רבות לניתוח, סיכום והבנת התפלגות הנתונים בוקטורים או בטבלאות.

פונקציות סטטיסטיות בסיסיות

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

  • mean(x): מחשב את הממוצע האריתמטי של האלמנטים.
  • median(x): מחשב את החציון (הערך האמצעי).
  • sd(x): מחשב את סטיית התקן (מדד למידת הפזורים של הנתונים).
  • min(x) ו-max(x): החזר את ערכי המינימום והמקסימום בהתאמה.
R
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Mean:", avg, "- Std Dev:", round(dispersion, 2), "\n")

טיפול בנתונים חסרים (NA)

בעולם האמיתי, מערכי נתונים מכילים לרוב ערכים חסרים, המיוצגים ב-R על ידי הישות המיוחדת NA (לא זמין).

אם תנסה לחשב את הממוצע או כל צבירה אחרת על וקטור שמכיל אפילו NA בודד, R יחזיר NA כתוצאה מכך. כדי להתעלם מערכים חסרים, עליך להעביר את הארגומנט הלוגי na.rm = TRUE (NA הסר):

R
temperatures <- c(18, 21, NA, 24, 19)

# This will return NA
print(mean(temperatures))

# This will ignore the NA and perform the calculation on valid values
print(mean(temperatures, na.rm = TRUE))

סיכום גלובלי עם summary()

הפונקציה summary() היא כלי רב עוצמה המספק סקירה סטטיסטית מלאה של וקטור או מסגרת נתונים שלמה, המציגה את המינימום, הרבעון הראשון, החציון, הממוצע, הרבעון השלישי ומקסימום:

R
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

צבירת נתונים עם aggregate

בעבודה עם מסגרות נתונים, מקובל לחשב סטטיסטיקות סיכום (כגון ממוצע או סכום) עבור קבוצות או קטגוריות ספציפיות. הפונקציה aggregate() ב-R מפשטת את התהליך הזה:

R
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Calcola la media dei salari per dipartimento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

התחביר salary ~ department פירושו "נתח את המשתנה salary בהתבסס על המשתנה department". הארגומנט FUN = mean מציין שאנו רוצים לחשב את הממוצע האריתמטי עבור כל קבוצה.

סינון מתקדם עם subset

הפונקציה subset() מספקת דרך אינטואיטיבית ואלגנטית לחלץ קבוצות משנה של שורות ועמודות ממסגרת נתונים, תוך הימנעות משימוש בסוגריים מרובעים מורכבים:

R
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtra solo i dipendenti attivi con età superiore a 28
active_employees <- subset(employees, active == TRUE & age > 28)

נסה זאת בעצמך

פעילות גופנית#r.m3.l2.e1
ניסיונות: 0טוען...

בהינתן הטמפרטורות הווקטוריות, חשב את הממוצע ושמור אותו במשתנה mean_temp. לאחר מכן חשב את החציון ושמור אותו ב-median_temp.

טוען עורך...
הצג רמז

USa mean_temp <- mean(temperatures) e median_temp <- median(temperatures)

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m3.l2.e2
ניסיונות: 0טוען...

בהינתן וקטור הציונים המכיל ערך NA, חשב את סטיית התקן של הווקטור ללא ערכים חסרים ושמור אותה במשתנה sd_scores.

טוען עורך...
הצג רמז

השתמש בפונקציה sd() עם הארגומנט na.rm = TRUE: sd_scores <- sd(scores, na.rm = TRUE)

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m3.l2.e3
ניסיונות: 0טוען...

בהינתן מסגרת הנתונים df, השג את הסיכום הסטטיסטי של עמודת הערכים ושמור אותו במשתנה stats_summary.

טוען עורך...
הצג רמז

חלץ את העמודה באמצעות האופרטור $ והעביר אותה אל summary(): stats_summary <- summary(df$values)

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m3.l2.e4
ניסיונות: 0טוען...

בהתחשב במכירת מסגרת הנתונים, השתמש בפונקציה aggregate() כדי לחשב את הסכום (FUN = sum) של עמודת ההכנסה המקובצת לפי עמודת האזור. שמור את התוצאה במשתנה region_sales.

טוען עורך...
הצג רמז

השתמש: region_sales <- aggregate(הכנסה ~ אזור, נתונים = מכירות, FUN = סכום)

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#r.m3.l2.e5
ניסיונות: 0טוען...

בהינתן מוצרי מסגרת הנתונים, השתמש בפונקציה subset() כדי לסנן רק את המוצרים השייכים לקטגוריית 'אלקטרוניקה' (קטגוריה == 'אלקטרוניקה') ומחירם גבוה מ-100 (מחיר > 100). שמור את התוצאה במשתנה יקר_אלקטרוניקה.

טוען עורך...
הצג רמז

השתמש: יקר_אלקטרוניקה <- subset(מוצרים, קטגוריה == 'אלקטרוניקה' ומחיר > 100)

הפתרון זמין לאחר 3 ניסיונות