צבירת נתונים עם dplyr
שיעור 7 מתוך 14 בקורס מניפולציה של נתונים ב-R של Coddy.
צבירת נתונים היא שלב חיוני בניתוח נתונים, המאפשר לך לסכם ולהפיק תובנות ממערך הנתונים שלך. החבילה dplyr ב-R מספקת פונקציות רבות עוצמה לצבירת נתונים, ובפרט group_by() ו-summarize(). בואו נבחן כיצד להשתמש בפונקציות האלה ביעילות.
הפונקציה group_by()
הפונקציה group_by() מאפשרת לך לקבץ את הנתונים שלך לפי משתנה אחד או יותר. זהו בדרך כלל השלב הראשון בצבירת נתונים.
# מסגרת נתונים לדוגמה
df <- data.frame(
category = c("A", "B", "A", "B", "A"),
value = c(10, 15, 20, 25, 30)
)
# קבצו את הנתונים לפי קטגוריה
grouped_df <- group_by(df, category)
print(grouped_df)פלט:
# טיבל: 5 × 2
# קבוצות: category [2]
category value
<chr> <dbl>
1 A 10
2 B 15
3 A 20
4 B 25
5 A 30הפונקציה summarize()
לאחר הקיבוץ, השתמשו ב-summarize() כדי לחשב סטטיסטיקות מסכמות עבור כל קבוצה.
# חשב את הערך הממוצע עבור כל קטגוריה
result <- summarize(grouped_df, mean_value = mean(value))
print(result)פלט:
# A tibble: 2 × 2
category mean_value
<chr> <dbl>
1 A 20
2 B 20שילוב של group_by() ו-summarize()
אפשר לשרשר את הפונקציות האלה באמצעות אופרטור הצינור %>% כדי לכתוב קוד קריא יותר:
result <- df %>%
group_by(category) %>%
summarize(mean_value = mean(value),
sum_value = sum(value),
count = n())
print(result)פלט:
# A tibble: 2 × 4
category mean_value sum_value count
<chr> <dbl> <dbl> <int>
1 A 20 60 3
2 B 20 40 2מספר סטטיסטיקות מסכמות
אפשר לחשב כמה סטטיסטיקות בקריאה אחת ל-summarize():
result <- df %>%
group_by(category) %>%
summarize(
mean_value = mean(value),
min_value = min(value),
max_value = max(value),
count = n()
)
print(result)פלט:
# A tibble: 2 × 5
category mean_value min_value max_value count
<chr> <dbl> <dbl> <dbl> <int>
1 A 20 10 30 3
2 B 20 15 25 2השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
אתגר
בינוניצרו פונקציה שמעבדת נתוני מכירות באמצעות הפונקציות של dplyr. הפונקציה צריכה לבצע את הפעולות הבאות:
- קבצו את הנתונים לפי קטגוריית המוצר
- חשבו את הנתונים הסטטיסטיים המסכמים הבאים עבור כל קבוצה:
- סך המכירות
- המחיר הממוצע
- מספר הפריטים שנמכרו
- סדרו את התוצאות לפי סך המכירות בסדר יורד
- החזירו את מסגרת הנתונים שעובדה
הדפיסו את מסגרת הנתונים שהתקבלה.
נסו בעצמכם
# קראו את הקלט
con <- file("stdin", "r")
input_data <- suppressWarnings(readLines(con))
# המירו את מחרוזת הקלט למסגרת נתונים
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(readr))
sales_data <- read.csv(paste(input_data, collapse = "\n"))
# TODO: כתבו את הקוד שלכם למטה כדי לעבד את נתוני המכירות
# רמז: השתמשו בפונקציות של dplyr כגון group_by(), summarize(), arrange(), desc()
process_sales_data <- function(data) {
# הקוד שלכם כאן
# החזירו את מסגרת הנתונים המעובדת
return(data)
}
# עבדו את נתוני המכירות
result <- process_sales_data(sales_data)
# הדפיסו את התוצאה
print(result)כל השיעורים ביחידה מניפולציה של נתונים ב-R
תרגלו בעצמכם: קומפיילר R אונליין