בפוסט הקודם (לחצו פה) סקרתי את טיפוס
הנתונים categorical, אשר
נוסף לסביבת MATLAB בגרסת R2013b. באותה גרסה הצטרף גם טיפוס נתונים שימושי
נוסף, table, אשר בו יעסוק הפוסט הנוכחי.
לעתים קרובות אנו מארגנים מידע לצורה של
טבלה, בה העמודות השונות מייצגות משתנים שונים אשר אותם מודדים (למשל – משקל,
גובה, לחץ דם), והשורות מייצגות תצפיות שונות (בני אדם שונים).
טיפוס המידע table מאפשר עבודה מאוד נוחה עם טבלאות שכאלה, כפי שיפורט בהמשך, אך לצורך
הכנסת טבלה לתוך טיפוס המידע הזה חשוב להקפיד ש:
- · כל העמודות בעלות אורך זהה
- · בכל עמודה טיפוס מידע אחיד (עמודות שונות יכולות להיות עם נתונים מטיפוסי מידע שונים)
- · לכל עמודה כותרת ייחודית (כלומר – אין שני משתנים בעלי שם זהה)
הדרישות האלה הן טריוויאליות, אבל עדיין
הרגשתי צורך לציין אותן :)
כיצד יוצרים table ?
על מנת לייבא מידע מקבצי Excel לתוך ה-workspace בצורה של table, ניתן
להשתמש ב-import tool (קליק
כפול על הקובץ, ובחירה באופציה Table בחלון
ה- IMPORTED DATA). לחילופין, אפשר להשתמש
בפקודה readtable (מומלץ לראות בתיעוד את
האפשרויות השונות שהיא מציעה – כולל דרכי הטיפול בנתונים חסרים – לחצו פה לתיעוד).
אגב, כפי שיש readtable, יש גם
את הפקודה writetable, המאפשרת
למשל לשמור table לתוך קובץ Excel.
ניתן גם לבנות טבלה מתוך משתנים אשר
קיימים ב-workspace, וזאת
באמצעות הפקודה table (דוגמה
בהמשך).
ואפשר גם להיעזר בפונקציות המרה אשר
ממירות מידע מטיפוס אחד לטיפוס table, למשל –
הפונקציה struct2table, אשר
ממירה מידע מ-structure array לצורת table.
אגב, אם יש לכם מספר tables – ניתן לאחד אותם. אם מדובר בשני tables המכילים תצפיות שונות של אותם המשתנים – יש
לבצע שרשור אנכי – t3=[t1;t2]. ואם
מדובר בשני tables שמכילים
נתונים שונים על אותן התצפיות (או על חלק מהן) – אפשר להשתמש בפקודות join, innerjoin, outerjoin, תלוי במקרה ובמה שרוצים
להשיג.
יצירת table מתוך משתנים קיימים (לחצו להגדלה)
|
אפשר לעבוד עם table כמו שעובדים עם כל מטריצה, ובאמצעות אינדקסים נומרים מתאימים לחלץ
רק עמודות ושורות רלוונטיות. למשל, על ידי z=t(1:20,[8,10]) נקבל table חדש
באורך 20 שורות ושתי עמודות. אבל, כדאי לדעת ש-table מאפשר לחלץ עמודות גם על סמך השם שלהן, ולא רק על סמך המספר שלהן. למשל: z=t(:,'age'). הנ"ל כמובן תקף גם לגבי שורות.
כדי לגשת למידע עצמו שנמצא בעמודה
מסוימת, ולקבל וקטור או מטריצה מטיפוס המידע המקורי של הנתונים (להבדיל ממה שבוצע
קודם - שהיה לקבל table קטן
יותר) – יש להשתמש באופרטור הנקודה, למשל: z=t.age. דרך אחרת, שמאפשרת לחלץ מספר עמודות יחד לתוך מטריצה אחת (כמובן
בהנחה שכל העמודות מאותו טיפוס מידע מקורי), היא שימוש באופרטור הסוגרים
המסולסלים, לדוגמה:
z=t{:,{'age','height'}}.
אוקיי, חוץ מניהול נתונים, חילוץ נתונים והדפסה נוחה שלהם,
יש עוד משהו
שאפשר לעשות עם table ?
שאפשר לעשות עם table ?
ברור !
table הוא אובייקט בעל properties שאפשר להפעיל עליו methods. כדי לראות את ה-properties של t, יש להשתמש בסינטקס t.Properties (שימו לב ל-P הגדולה). כמובן שניתן לשנות את ה-properties השונים, למשל – אפשר לתת כותרות גם לשורות.
table הוא אובייקט בעל properties שאפשר להפעיל עליו methods. כדי לראות את ה-properties של t, יש להשתמש בסינטקס t.Properties (שימו לב ל-P הגדולה). כמובן שניתן לשנות את ה-properties השונים, למשל – אפשר לתת כותרות גם לשורות.
שינוי properties של table
|
מיון table לפי עמודת הגיל
|
מקווה שהתרשמתם מהיכולות של טיפוס המידע
table, וגם אם לא התרשמתם – קחו בחשבון
שכדאי להכיר אותו, שכן יש פונקציות אשר מוכנות לקבל רק אותו בתור קלט.
ואם חשבתם שזה הפוסט האחרון בנושא טיפוסי
מידע חדשים בסביבת MATLAB, אז דעו לכם שבגרסת R2016b שתצא
בחודש הבא צפויים להצטרף עוד מספר טיפוסי מידע חדשים, וכמובן שנעסוק בהם גם פה...
אין תגובות:
הוסף רשומת תגובה