מבוא ל־dplyr
שיעור 6 מתוך 14 בקורס מניפולציה של נתונים ב-R של Coddy.
החבילה dplyr היא כלי רב־עוצמה לעיבוד נתונים ב־R. היא מספקת קבוצת פונקציות שמקלות על שינוי וניתוח של מסגרות נתונים ביעילות. בשיעור הזה נתמקד בשלוש פונקציות מרכזיות: select(), filter() ו־mutate().
טעינת dplyr
הנה דוגמה לטעינת החבילה:
# טען את dplyr
library(dplyr)הפונקציה select()
הפונקציה select() מאפשרת לבחור עמודות מסוימות מתוך מסגרת נתונים:
# צרו מסגרת נתונים לדוגמה
df <- data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
city = c("New York", "London", "Paris")
)
# בחרו עמודות מסוימות
result <- select(df, name, age)
print(result)פלט:
name age
1 Alice 25
2 Bob 30
3 Charlie 35הפונקציה filter()
הפונקציה filter() מאפשרת לבחור שורות לפי תנאים מסוימים:
# סנן שורות שבהן age גדול מ-28
result <- filter(df, age > 28)
print(result)פלט:
name age city
1 Bob 30 London
2 Charlie 35 Parisהפונקציה mutate()
הפונקציה mutate() מאפשרת ליצור עמודות חדשות או לשנות עמודות קיימות:
# הוסף עמודה חדשה 'age_group'
result <- mutate(df, age_group = ifelse(age < 30, "Young", "Adult"))
print(result)פלט:
name age city age_group
1 Alice 25 New York Young
2 Bob 30 London Adult
3 Charlie 35 Paris Adultאופרטור הצינור %>%
dplyr מציגה את אופרטור הצינור %>%, שמאפשר לשרשר כמה פעולות:
result <- df %>%
filter(age > 28) %>%
select(name, city) %>%
mutate(location = paste(name, "lives in", city))השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
אתגר
קלעבדו על מסגרת נתונים של פרטי עובדים באמצעות פונקציות dplyr. בצעו את הפעולות הבאות:
- בחרו רק את העמודות "name", "age" ו-"salary"
- סננו את הנתונים כך שיכללו רק עובדים בני 30 ומעלה
- הוסיפו עמודה חדשה בשם "bonus", שערכה הוא 10% מהמשכורת לעובדים בני 40 ומעלה, ו-5% עבור האחרים
- מיינו את מסגרת הנתונים לפי המשכורת בסדר יורד
- הדפיסו את מסגרת הנתונים שהתקבלה.
נסו בעצמכם
# טענו את הספרייה הנדרשת
suppressPackageStartupMessages(library(dplyr))
# קראו את הקלט
con <- file("stdin", "r")
input_data <- suppressWarnings(readLines(con))
# צרו מסגרת נתונים מהקלט
df <- read.csv(text = input_data, stringsAsFactors = FALSE)
# TODO: כתבו את הקוד שלכם למטה כדי לעבד את מסגרת הנתונים
process_employee_data <- function(df) {
# הקוד שלכם כאן
# השתמשו בפונקציות של dplyr כדי:
# 1. לבחור עמודות
# 2. לסנן נתונים
# 3. להוסיף עמודת בונוס
# 4. למיין לפי שכר
return(df) # החליפו את זה במסגרת הנתונים שעיבדתם
}
# עבדו את מסגרת הנתונים
result <- process_employee_data(df)
# הדפס את התוצאה
print(result)כל השיעורים ביחידה מניפולציה של נתונים ב-R
תרגלו בעצמכם: קומפיילר R אונליין