פתרון כל בעיות Windows ותוכניות אחרות

4 משימות התמודדות נתונים ב- R למתחילים מתקדמים

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

העברת הנתונים שלך סביב R

  • הוספת עמודה למסגרת נתונים קיימת
    • תחביר 1: לפי משוואה
    • תחביר 2: פונקציית ה- transform () של R
    • תחביר 3: פונקציית החלת R
    • תחביר 4: מיפוי ()
    • תחביר 5: dplyr של tidyverse
  • קבלת סיכומים לפי קבוצות משנה של נתונים
  • בונוס מקרה מיוחד: קיבוץ לפי טווח תאריכים
  • מיון התוצאות שלך
  • עיצוב מחדש: רחב עד ארוך
  • עיצוב מחדש: ארוך עד רחב

אם אתה אפילו לא בשלב שבו אתה מרגיש בנוח לבצע משימות ראשונות ב- R, אנו ממליצים לך לפנות מיד אל Computerworld מדריך למתחילים ל- R. . אבל אם יש לך כמה דברים בסיסיים ורוצה לעשות צעד נוסף בפיתוח כישורי R שלך - או שאתה רק רוצה לראות כיצד לבצע אחת מארבע המשימות האלה ב- R - אנא המשך לקרוא.



יצרתי מערך נתונים לדוגמה עם נתוני הכנסות ורווחים של שלוש שנים מאפל, גוגל ומיקרוסופט, ובחן את הביצועים של החברות זמן קצר לאחר 'המיתון הגדול' 2008-2009. (מקור הנתונים היה החברות עצמן; 'fy' פירושו שנת הכספים.) אם תרצה לעקוב, תוכל להקליד (או להעתיק ולהדביק) את זה בחלון מסוף R שלך:



fy <- c(2010,2011,2012,2010,2011,2012,2010,2011,2012) company <- c('Apple','Apple','Apple','Google','Google','Google','Microsoft','Microsoft','Microsoft') revenue <- c(65225,108249,156508,29321,37905,50175,62484,69943,73723) profit <- c(14013,25922,41733,8505,9737,10737,18760,23150,16978) companiesData <- data.frame(fy, company, revenue, profit)

הקוד למעלה ייצור מסגרת נתונים כמו זו שלמטה, המאוחסנת במשתנה בשם 'companyData':

fy חֶברָה הַכנָסָה רווח
1 2010 תפוח עץ 65225 14013
2 2011 תפוח עץ 108249 25922
3 2012 תפוח עץ 156508 41733
4 2010 גוגל 29321 8505
5 2011 גוגל 37905 9737
6 2012 גוגל 50175 10737
7 2010 מיקרוסופט 62484 18760
8 2011 מיקרוסופט 69943 23150
9 2012 מיקרוסופט 73723 16978

(R מוסיף מספרי שורות משלו אם אינך כולל שמות של שורות.)



אם תפעיל את הפונקציה str () על מסגרת הנתונים כדי לראות את המבנה שלה, תראה שהשנה מתייחסת למספר ולא כשנה או כגורם:

str(companiesData) 'data.frame': 9 obs. of 4 variables: $ fy : num 2010 2011 2012 2010 2011 ... $ company: Factor w/ 3 levels 'Apple','Google',..: 1 1 1 2 2 2 3 3 3 $ revenue: num 65225 108249 156508 29321 37905 ... $ profit : num 14013 25922 41733 8505 9737 ...

אולי ארצה לקבץ את הנתונים שלי לפי שנה, אבל אני לא חושב שאעשה ניתוח מבוסס זמן ספציפי, אז אני יהפוך את טור המספרים fy לעמודה המכילה קטגוריות R (הנקראות גורמים) במקום זאת תאריכים עם הפקודה הבאה:

companiesData$fy <- factor(companiesData$fy, ordered = TRUE)



כיצד להגדיל את מהירות המחשב חלונות 10

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

ליצירת גורמים מסודרים, לחבילת המזללות המסודרות מספר אפשרויות, כולל | _+_ |.

עכשיו אנחנו מוכנים לצאת לעבודה.

שרון מכליס של IDG מדגימה כיצד להשתמש בפונקציות החדשות של pivot_longer ו- pivot_wider של tidyr. פרטים נוספים בעמוד 7.

הוספת עמודה למסגרת נתונים קיימת

אחת המשימות הקלות ביותר לביצוע ב- R היא הוספת עמודה חדשה למסגרת נתונים המבוססת על עמודה אחת או יותר. ייתכן שתרצה לצרף כמה מהעמודות הקיימות שלך, למצוא ממוצע או לחשב באופן אחר 'תוצאה' מהנתונים הקיימים בכל שורה.

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

netwtw06.sys נכשל

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

כל שעליך לעשות הוא ליצור שם משתנה עבור העמודה החדשה ולהעביר בנוסחת חישוב כערכה אם, למשל, תרצה עמודה חדשה שהיא סכום של שתי עמודות קיימות:

dataFrame $ newColumn<- dataFrame$oldColumn1 + dataFrame$oldColumn2

כפי שאתה בוודאי יכול לנחש, הדבר יוצר טור חדש בשם 'newColumn' עם סכום oldColumn1 + oldColumn2 בכל שורה.

כיצד לבטל את נעילת האייפון באמצעות סירי

עבור מסגרת הנתונים לדוגמא שלנו הנקראת נתונים, נוכל להוסיף טור לשולי רווח על ידי חלוקת הרווח בהכנסות ולאחר מכן הכפלה ב- 100:

companiesData$fy <- forcats::as_factor(as.character(companiesData$fy))

זה נותן לנו:

fy חֶברָה הַכנָסָה רווח שולים
1 2010 תפוח עץ 65225 14013 21.48409
2 2011 תפוח עץ 108248 25922 23.94664
3 2012 תפוח עץ 156508 41733 26.66509
4 2010 גוגל 29321 8505 29.00651
5 2011 גוגל 37905 9737 25.68790
6 2012 גוגל 50175 10737 21.39910
7 2010 מיקרוסופט 62484 18760 30.02369
8 2011 מיקרוסופט 69943 23150 33.09838
9 2012 מיקרוסופט 73723 16978 23.02945

וואו - זה הרבה מקומות עשרוניים בעמודת השוליים החדשה.

אנחנו יכולים לעגל את זה למקום עשרוני אחד בלבד עם הפונקציה עגולה (); round () לוקח את הפורמט:

עגול (מספרים) שיש לעגל, כמה מקומות עשרוניים אתה רוצה)

אז, כדי לעגל את עמוד השוליים למקום עשרוני אחד:

companiesData$margin <- (companiesData$profit / companiesData$revenue) * 100

ותקבל את התוצאה הבאה:

fy חֶברָה הַכנָסָה רווח שולים
1 2010 תפוח עץ 65225 14013 21.5
2 2011 תפוח עץ 108248 25922 23.9
3 2012 תפוח עץ 156508 41733 26.7
4 2010 גוגל 29321 8505 29.0
5 2011 גוגל 37905 9737 25.7
6 2012 גוגל 50175 10737 21.4
7 2010 מיקרוסופט 62484 18760 30.0
8 2011 מיקרוסופט 69943 23150 33.1
9 2012 מיקרוסופט 73723 16978 23.0