חמש אפשרויות שימושיות בנתוני ה- R

כמו כל הפונקציות בחבילת R data.table, הקצאה מהירה. מהר מאוד. אבל יש יותר לקשקש מאשר מהירות. יש לו כמה תכונות ואפשרויות מועילות בעת ייבוא ​​נתונים חיצוניים ל- R. להלן חמש מהשימושים ביותר.

הערה: אם תרצה לעקוב אחרינו, הורד את קובץ ה- CSV של ניו יורק טיימס של מקרי Covid-19 מדי יום לפי מחוז ארה"ב בכתובת //github.com/nytimes/covid-19-data/raw/master/us-counties. csv.

השתמש באופציית המסמכים של fread

האם הקובץ שלך גדול? האם ברצונך לבחון את מבנהו לפני שתייבא את כל העניין - מבלי שתצטרך לפתוח אותו בעורך טקסט או באקסל? השתמש nrowsבאפשרות של fread כדי לייבא רק חלק מקובץ לחקירה .

הקוד שלמטה מייבא רק את עשר השורות הראשונות של ה- CSV.

mydt10 <- fread ("us-counties.csv", nrows = 10)

אם אתה רק רוצה לראות שמות עמודות ללא נתונים כלל, תוכל להשתמש nrows = 0

השתמש באפשרות הבחירה של fread

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

mydt <- fread ("us-counties.csv",

בחר = c ("תאריך", "מחוז", "מדינה", "מקרים"))

כמו תמיד, מספרים אינם זקוקים למרכאות:

mydt <- fread ("us-counties.csv", בחר = c (1,2,3,5))

אתה יכול להשתמש באובייקט R עם וקטור של שמות עמודות בתוך הקצה, כפי שאתה יכול לראות בקבוצת הקוד הבאה. אני יוצר וקטור my_cols עם תאריך, מחוז, מדינה ותיקים ; ואז אני משתמש בווקטור הזה בתוך הקצף.

my_cols <- c ("תאריך", "מחוז", "מדינה", "מקרים")

mydt <- fread ("us-counties.csv", בחר = my_cols)

ההפך selectהוא drop. אתה יכול לבחור לייבא את כל העמודות מלבד אלה שאתה מציין איתן drop, כגון:

mydt <- fread ("us-counties.csv", drop = c ("fips", "deaths"))

כמו עם select, dropלוקח וקטור של שמות עמודות או מיקומים מספריים. 

השתמש בקצפת עם גרפ

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

ca <- fread ("grep California us-counties.csv")

למרבה הצער, grep לא מבין את שמות העמודות של הקובץ המקורי, ולכן בסופו של דבר אתה מקבל שמות ברירת מחדל.

ראש (ca) V1 V2 V3 V4 V5 V6 1: 2020-01-25 אורנג 'קליפורניה 6059 1 0 2: 2020-01-26 לוס אנג'לס קליפורניה 6037 1 0 3: 2020-01-26 אורנג' קליפורניה 6059 1 0 4: 2020 -01-27 לוס אנג'לס קליפורניה 6037 1 0 5: 2020-01-27 אורנג 'קליפורניה 6059 1 0 6: 2020-01-28 לוס אנג'לס קליפורניה 6037 1 0

עם זאת, fread מאפשר לנו לציין שמות עמודות עם col.namesהאפשרות. אני יכול להגדיר את השמות על סמך שמות מ- mydt10 שיצרתי למעלה.

תאריך ראש (ca) תאריך מדינת המחוז ממלא מקרי מוות 1: 2020-01-25 אורנג 'קליפורניה 6059 1 0 2: 2020-01-26 לוס אנג'לס קליפורניה 6037 1 0 3: 2020-01-26 אורנג' קליפורניה 6059 1 0 4: 2020-01-27 לוס אנג'לס קליפורניה 6037 1 0 5: 2020-01-27 אורנג 'קליפורניה 6059 1 0 6: 2020-01-28 לוס אנג'לס קליפורניה 6037 1 0

אנו יכולים גם להשתמש בביטויים רגולריים, עם -Eאפשרות של grep , ומאפשרים לנו לבצע חיפושים מורכבים יותר, כמו לחפש ארבע מדינות בבת אחת. 

states4 <- fread (cmd = "grep -E 'Texas | Arizona | Florida | South Carolina' us-counties.csv",

col.names = names (mydt10))

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

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

השתמש באפשרות colClasses של fread

ניתן להגדיר שיעורי עמודות במהלך הייבוא - לכמה עמודות בלבד, לא לכל אחת מהן. לדוגמה, עמודת התאריך בנתונים אלה נכנסת כמחרוזות תווים, למרות שהיא בתבנית יום-חודש-יום. אנו יכולים להגדיר את העמודה בשם תאריך לסוג הנתונים תאריך  במהלך הייבוא ​​באמצעות colClassesהאפשרות. 

mydt <- fread ("us-counties.csv", colClasses = c ("date" = "תאריך"))

עכשיו, תאריכים הם תאריכים.

> str (mydt) Classes 'data.table' ו- 'data.frame': 322651 obs. מתוך 6 משתנים: $ date: תאריך, פורמט: "2020-01-21" "2020-01-22" "2020-01-23" ... $ מחוז: chr "Snohomish" "Snohomish" "Snohomish" "Cook "... $ state: chr" Washington "" Washington "" Washington "" Illinois "... $ fips: int 53061 53061 53061 17031 53061 6059 17031 53061 4013 6037 ... $ cases: int 1 1 1 1 1 1 1 1 1 1 ... $ מקרי מוות: int 0 0 0 0 0 0 0 0 0 0 ...

השתמש בקצוות על קבצים מכווצים

אתה יכול לייבא קובץ מכווץ מבלי לפתוח אותו קודם . fread יכול לייבא קבצי gz ו- bz2 ישירות, כגון  mydt <- fread("myfile.gz"). אם עליך לייבא קובץ zip, תוכל לפתוח אותו באמצעות unzipפקודת המערכת בתוך ה- fread, באמצעות התחביר  mydt <- fread(cmd = 'unzip -cq myfile.zip').

לקבלת טיפים נוספים בנושא R, עבור אל עמוד 'עשה יותר עם R'.