שיעורי מודול (1/2)
סינון ובחירת נתונים
The Tidyverse הוא אוסף של חבילות R המיועדות למדעי נתונים שחולקות פילוסופיה, דקדוק ומבני נתונים משותפים. חבילת הליבה למניפולציה של נתונים בחבילה זו נקראת dplyr.
dplyr מציגה קבוצה של פונקציות ("פעלים") שהופכות את המניפולציה של מסגרות נתונים אינטואיטיבית ביותר.
מפעיל הצינור (%>% או |>)
הפילוסופיה של Tidyverse מתמקדת בחיבור פעולות יחד. אופרטור הצינור %>% (או הצינור המקורי |> שהוצג ב-R 4.1+) לוקח את התוצאה של ביטוי אחד ומעביר אותה כארגומנט הראשון לפונקציה הבאה. זה ימנע קריאות פונקציות מקוננות ומונע עומס של סביבת העבודה שלך במשתנים זמניים.
# Without pipe:
filter(select(df, name, age), age > 20)
# With pipe:
df %>%
select(name, age) %>%
filter(age > 20)dplyr פעלים לסינון ובחירה
שלושת הפעלים הבסיסיים לחילוץ נתונים ממסגרת נתונים הם:
1. select()
בוחר עמודות ספציפיות ממסגרת נתונים. אתה יכול לרשום את שמות העמודות שיש לשמור או להשתמש בקידומת - כדי לא לכלול עמודות.
# Select the 'name' and 'salary' columns
select(df, name, salary)
# Remove the 'address' column
select(df, -address)2. filter()
מסנן שורות על סמך תנאי לוגי אחד או יותר.
# Filter rows where age is greater than 30
filter(df, age > 30)
# Filter using multiple conditions (logical AND)
filter(df, age > 30, department == "HR")3. arrange()
ממיין שורות על סמך הערכים של עמודה אחת או יותר. סדר המיון עולה כברירת מחדל. כדי למיין בסדר יורד, עטוף את שם העמודה ב-desc().
# Sort by age (ascending)
arrange(df, age)
# Sort by salary (descending)
arrange(df, desc(salary))נסה זאת בעצמך
תרגיל 1: בחר עמודות
בהינתן מסגרת הנתונים df, בחר את עמודות השם והגיל באמצעות select() ושמור את התוצאה ב-df_selected.
הצג רמז
ארה"ב: df_selected <- select(df, name, age)
הפתרון זמין לאחר 3 ניסיונות
סנן את השורות של מסגרת הנתונים df שבהן עמודת הגיל היא בהחלט גדולה מ-18, ושמור את התוצאה ב-df_adults.
הצג רמז
השתמש בפונקציה filter(df, age > 18) והקצה את התוצאה ל-df_adults.
הפתרון זמין לאחר 3 ניסיונות
השתמש באופרטור הצינור %>% לשרשרת פעולות: תחילה סנן את df תוך שמירה רק על רשומות כאשר גיל> 18, ולאחר מכן בחר את עמודת השם. שמור את התוצאה במיל.
הצג רמז
כתב: res <- df %>% filter(גיל > 18) %>% select(name)
הפתרון זמין לאחר 3 ניסיונות
מיין את השורות של מסגרת הנתונים df בהתבסס על עמודת השכר בסדר יורד באמצעות arrange() ו-desc(). שמור את התוצאה ב-df_sorted.
הצג רמז
ארה"ב לארגן (desc(משכורת)) all'interno di una pipeline o come argomento diretto.
הפתרון זמין לאחר 3 ניסיונות
כתוב צינור שלם ב-df: סנן את הרשומות שבהן מחלקה שווה 'IT', בחר את שם העמודות והשכר, ומיון את התוצאה לפי שכר (עולה). שמור את התוצאה הסופית במיל.
הצג רמז
השתמש בצינור %>% כדי לסנן שרשרת (מחלקה == 'IT'), לבחור (שם, משכורת) ולסדר (משכורת).
הפתרון זמין לאחר 3 ניסיונות