R הדרכה מבריקה: כל מה שאתה צריך לדעת



מדריך R Shiny זה יספק לך ידע מפורט ומקיף על R Shiny וכיצד ליצור יישומי אינטרנט אינטראקטיביים.

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

ההבדל בין משתנה ללא שינוי

נסקור ונבין את הנושאים הבאים:





מה זה R מבריק?

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

תכונות של R Shiny:

  • צור יישומים קלים עם ידע בסיסי או ללא כלים בכלי אינטרנט
  • שילוב Shiny עם כלי אינטרנט מקומיים לשיפור הגמישות והפרודוקטיביות
  • פונקציות קלט / פלט ועיבוד מובנות מראש
  • עיבוד קל של תוכן היישום ללא טעינות מרובות
  • תכונה להוספת יציאות ממוחשבות (או מעובדות) מתסריטים R
  • הוסף דוחות חיים והדמיות.

זה מביא אותנו לשאלה:



במה שונה מבריק מיישומים מסורתיים?

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

בואו נעבור לנושא הבא במדריך R Shiny, בהתקנת חבילת R Shiny.

התקנת R מבריק

התקנת Shiny היא כמו התקנת כל חבילה אחרת ב- R. עבור אל קונסולת R והפעל את הפקודה שלהלן כדי להתקין את החבילה המבריקה.



install.packages ('מבריק')

התקן את R Shiny - הדרכה מבריקה R - Edureka

לאחר ההתקנה, טען את החבילה המבריקה ליצירת אפליקציות מבריקות.

ספרייה (מבריק)

לפני שנתקדם בהדרכה מבריקה זו של R, בואו נראה ונבין את מבנה היישום המבריק.

מבנה של אפליקציה מבריקה

מבריק מורכב משלושה מרכיבים:

  1. ממשק משתמש
  2. שרת
  3. ShinyApp

אחד.פונקציית ממשק משתמש

ממשק משתמש פונקציית (UI) מגדירה את הפריסה והמראה של האפליקציה. באפשרותך להוסיף תגי CSS ו- HTML בתוך האפליקציה כדי להפוך את היישום לייצוג יותר. הפונקציה מכילה את כל הקלטים והפלטים שיוצגו באפליקציה. כל רכיב (חלוקה או כרטיסייה או תפריט) בתוך האפליקציה מוגדר באמצעות פונקציות. אלה ניגשים באמצעות מזהה ייחודי, כמו אלמנטים של HTML.בואו ללמוד עוד על שונותפונקציות המשמשות באפליקציה.

פונקציות פריסה מבריקות

  • headerPanel ()הוסף כותרת לאפליקציה. titlePanel () מגדיר כותרת משנה של האפליקציה. ראה את התמונה למטה להבנה טובה יותר של headerPanel ו titlePanel .
  • SidebarLayout ()מגדיר פריסה להחזיק sidebarPanel ו mainPanel אלמנטים. הפריסה מחלקת את מסך האפליקציה ללוח סרגל הצד ולוח הראשי. לדוגמה, בתמונה למטה, המלבן האדום הוא ה- mainPanel שטח ואזור המלבן השחור אנכית הוא sidebarPanel אֵזוֹר.

  • wellPanel ()מגדיר מכולה המחזיקה אובייקטים מרובים של קלט / פלט של אפליקציות באותה רשת.
  • tabsetPanel ()יוצר מיכל להחזיק כרטיסיות. tabPanel () מוסיף כרטיסייה לאפליקציה על ידי הגדרת אלמנטים ורכיבים של כרטיסיות. בתמונה למטה, השחורמלבן הוא tabsetPanel האובייקט והמלבן האדום הוא tabPanel לְהִתְנַגֵד.
  • navlistPanel ()מספק תפריט צדדי עם קישורים ללוחות כרטיסיות שונים הדומים ל- tabsetPanel () כמו רשימה אנכית בצד שמאל של המסך. בתמונה למטה, המלבן השחור הוא navlistPanel האובייקט והמלבן האדום הוא tabPanel לְהִתְנַגֵד.

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

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

פונקציות קלט נוצצות

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

  • בחר קלט ()- צור אלמנט HTML נפתח.
selectInput ('בחר', h3 ('בחר תיבה'), בחירות = רשימה ('בחירה 1' = 1, 'בחירה 2' = 2, 'בחירה 3' = 3), נבחרה = 1)

  • numericInput ()- אזור קלט להקליד מספר או טקסט.
תאריך קלט ('מספר', 'קלט תאריך', ערך = '01-01-2014' numericInput ('מספר', 'קלט מספרי', ערך = 1) textInput ('מספר', 'קלט מספרי', ערך = ' הזן טקסט ... ')

  • כפתורי רדיו()- צור לחצני רדיו להזנת המשתמש.
radioButtons ('רדיו', h3 ('כפתורי רדיו'), בחירות = רשימה ('בחירה 1' = 1, 'בחירה 2' = 2, 'בחירה 3' = 3), נבחרה = 1)

פונקציות פלט נוצצות

מבריק מספק פונקציות פלט שונות המוצגות ר יציאות כגון עלילות, תמונות, טבלאות וכו 'המציגות תואמות ר לְהִתְנַגֵד.

  • plotOutput ()- להציג אובייקט R בעלילה.
plotOutput'top_batsman ')
  • tableOutput ()- מציג פלט כטבלה.
tableOutput'player_table ')

2. פונקציית שרת

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

פונקציות אלה לוכדות ביטוי R ועושות חישובים ועיבוד מקדים על הביטוי. השתמש בפונקציה render * המתאימה לפלט שאתה מגדיר. אנו ניגשים ליישומוני קלטבאמצעות קלט $ [מזהה יישומון] . משתני קלט אלה הם ערכים תגובתיים. כל משתני ביניים שנוצרו באמצעות משתני קלט צריכים להפוך לתגובתיים באמצעות תגובתי ({}) . גש למשתנים באמצעות ().

לְדַקלֵם * פונקציות מבצעות את החישוב בתוך פונקציית השרת ומאחסנות במשתני הפלט. את הפלט צריך לשמור עם פלט $ [שם משתנה פלט] . כל אחד לְדַקלֵם * הפונקציה לוקחת ארגומנט בודד כלומר, ביטוי R המוקף בסוגריים, {}.

3. פונקציית ShinyApp

shinyApp ()פונקציה היא הלב שלהאפליקציה שמתקשרת בצל ו שרת פונקציות ליצירת אפליקציה מבריקה.

התמונה למטה מציגה את קווי המתאר של האפליקציה Shiny.

בואו נעבור לקטע הבא במדריך R Shiny ליצירת האפליקציה R Shiny הראשונה.

צור פרויקט אינטרנט מבריק

לך ל קוֹבֶץ וליצור א פרוייקט חדש בכל ספריה -> יישום אינטרנט מבריק -> [שם מדריך היישומים המבריק]. הזן את שם הספרייה ולחץ בסדר .

כל פרויקט חדש של אפליקציות נוצצות יכיל דוגמה להיסטוגרמה להבנת היסודות של אפליקציה נוצצת. אפליקציית ההיסטוגרמה מכילה מחוון ואחריו היסטוגרמה שמעדכנת את הפלט לשינוי המחוון. להלן הפלט של אפליקציית ההיסטוגרמה.

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

עכשיו שהבנתם את המבנה ואיך מפעילים אפליקציה מבריקה. בואו נמשיך ליצור את האפליקציה המבריקה הראשונה שלנו.

צור את האפליקציה המבריקה הראשונה

באפשרותך ליצור פרויקט חדש או להמשיך באותה ספריית עבודה. במדריך זה של R Shiny ניצור אפליקציית Shiny פשוטה שתציג סטטיסטיקות IPL. ניתן להוריד את מערך הנתונים המשמש באפליקציה כאן . מערך הנתונים כולל שני קבצים, משלוחים. csv מכיל מסירות ציון לכל כדור (מעל) חובט, באולר, פרטי ריצות ו matches.csv הקובץ מכיל פרטי התאמה כגון מיקום המשחק, הטלה, פרטי מקום ומשחק. האפליקציה שלהלן דורשת ידע בסיסי ב dplyr ו כדי להבין את המדריך הבא.

בצע את השלבים הבאים כדי ליצור את האפליקציה המבריקה הראשונה שלך.

שלב 1 : צור מתאר של אפליקציה מבריקה.

נקה את הקוד הקיים למעט הגדרות הפונקציה ב- אפליקציה . ר קוֹבֶץ.

שלב 2 : טען ספריות ונתונים.

בשלב זה אנו טוענים את החבילות והנתונים הנדרשים. לאחר מכן, נקה והפוך את הנתונים שחולצו לפורמט הנדרש. הוסף את הקוד שלהלן לפני בצל ו שרת פוּנקצִיָה.

קוד:

ספרייה (מבריק) ספרייה (tidyverse) # טעינת מערך נתונים --------------------------------------- ---------------- משלוחים = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) התאמות = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # מערך נתונים לניקוי -------------------------------------------- --------- names (התאמות) [1] = 'match_id' IPL = dplyr :: inner_join (התאמות, משלוחים)

הֶסבֵּר :

שתי הקווים הראשונים נטענים טדיברס ו מַברִיק חֲבִילָה. שתי השורות הבאות טוענות משלוחי מערכות נתונים והתאמות ומאחסנות במשתניםמשלוחיםוהתאמות. שתי השורות האחרונות מעדכנות את שם העמודה של ה-התאמותמערך נתונים לביצוע צירוף פנימי עם ה-משלוחיםשולחן. אנו מאחסנים את תוצאת ההצטרפות באני PLמִשְׁתַנֶה.

שלב 3 : צור את הפריסה של האפליקציה המבריקה .

כפי שנדון קודם, בצל פונקציה מגדירה את מראה האפליקציה, יישומונים ואובייקטים באפליקציה המבריקה.בואו נדון בו בפירוט.

קוד

בצל<- fluidPage( headerPanel('IPL - Indian Premier League'), tabsetPanel( tabPanel(title = 'Season', mainPanel(width = 12,align = 'center', selectInput('season_year','Select Season',choices=unique(sort(matches$season, decreasing=TRUE)), selected = 2019), submitButton('Go'), tags$h3('Players table'), div(style = 'border:1px black solidwidth:50%',tableOutput('player_table')) )), tabPanel( title = 'Team Wins & Points', mainPanel(width = 12,align = 'center', tags$h3('Team Wins & Points'), div(style = 'float:leftwidth:36%',plotOutput('wins_bar_plot')), div(style = 'float:rightwidth:64%',plotOutput('points_bar_plot')) ) )))

ה בצל הפונקציה מכילה א headerPanel () אוֹ titlePanel () ואחריו tabsetPanel להגדרת כרטיסיות מרובות באפליקציה. tabPanel () מגדיר את האובייקטים עבור כל לשונית, בהתאמה. כל אחד tabPanel () מורכב מכותרת ו mainPanel (). mainPanel () יוצר מיכל ברוחב 12 כלומר חלון מלא ויישר אובייקטים של קלט ופלט במרכז.

הֶסבֵּר

האפליקציה מורכבת משתי כרטיסיות: עונה ו צוות מנצח ונקודות.

עונה הכרטיסייה כוללת בחר קלט ( ) , כפתור הגש ושולחן. עונה_שנה משמשת לקריאת קלט מ- lהוא של ערכים. tableOutput () מציג פלט טבלה המחושב על פונקציית השרת.השולחן player_table מוצג מתחת לכפתור המוגדר בפונקציית השרת עליו יידון בשלב הבא. צוות מנצח ונקודות הכרטיסייה מציגה זכייה קבוצתית ונקודות בתרשימי עמודות בהתאמה. plotOutput () מציג תפוקות שהוחזרו מעיבוד * פונקציות. כל פונקציות הקלט והפלט כלולות בתוך תג div להוספת סטיילינג מוטבע.

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

שלב 4: הוסף את הצהרות פונקציית השרת

ה שרת פונקציה כוללת יצירת פונקציות והספקתצוגות המשתמשות בכניסות משתמשים לייצור פלטים שונים. הפונקצית השרת מוסברת שלב אחר שלב בהמשך.

העבירו בהתייחסות בג'אווה
matches_year = reactive ({matches%>% filter (season == input $ season_year)}) playoff = reactive ({nth (sort (matches_year () $ match_id, decreasing = TRUE), 4)}) matches_played = reactive ({matches_year ()%>% מסנן (match_id% group_by (team1)%>% סיכום (ספירה = n ())}) t2 = תגובתי ({matches_played ()%>% group_by (team2)%>% סיכום (ספירה = n ( ))}) wl = תגובתי ({matches_played ()%>% filter (winner! = ')%>% group_by (winner)%>% סיכום (no_of_wins = n ())}) wl1 = תגובתי ({matches_played ( )%>% group_by (זוכה)%>% סיכום (no_of_wins = n ())}) tied = תגובתי ({matches_played ()%>% filter (winner == '')%>% select (team1, team2)} ) playertable = תגובתי ({data.frame (Teams = t1 () $ team1, שיחק = t1 () ספירת $ + t2 () ספירת $, ניצחונות = wl () $ no_of_wins, נקודות = wl () $ no_of_wins * 2) })

התאמות מסנן הקוד שלעיל הושמעו לפני הפלייאוף בכל שנה, ואחסנו את התוצאה במשתנה matches_played.שולחן נגןהטבלה מכילה סטטיסטיקה של התאמה קבוצתית, כלומר שיחקו, ניצחונות ונקודות. משתניםמשחקים_משחקים,שולחן נגן,t1,קָשׁוּרוכו 'כולם בינוניים ערכים תגובתי . יש לגשת למשתנים אלה באמצעות () כפי שמוצג בקוד לעיל.שולחן נגןמוצג באמצעות הפונקציה renderTable. לאחר מכן, צור את משתנה הפלט כדי לאחסן את שולחן ההפעלה.

פלט $ player_table = renderTable ({playertable ()})

כעת ניתן ליצור תרשימי עמודות כדי להציג ניצחונות ונקודות שצברו כל קבוצה בעונה. הקוד שלהלן מציג תרשימי עמודות באמצעות ggplot. renderPlot () מביא אובייקט ggplot ולאחסן את התוצאה במשתנהwins_bar_plotקוד ggplot מסביר את עצמו, הוא כולל פונקציות גרפיות ומיפוי בסיסיות לעריכת מקרא, תוויות ועלילה.

פלט $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (winner, no_of_wins, fill = winner)) + geom_bar (stat = 'identity') + theme_classic () + xlab ('Teams') + ylab ('מספר הזכיות') + ערכת נושא (axis.text.x = element_text (color = 'white'), legend.position = 'none', axis.title = element_text (size = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = winner, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) פלט $ points_bar_plot = renderPlot ({ggplot (playable table (), aes ( Teams, Points, fill = Teams)) + geom_bar (stat = 'identity', size = 3) + theme_classic () + theme (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Teams, (Points + 1), label = Points, size = 7))}

שלב 5: הפעל את האפליקציה Shiny.

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

Tab1 - עונה

Tab2 - קבוצות ניצחונות ונקודות

בואו נראה איךלהגדירחשבון Shinyapps.io לפריסת היישומים המבריקים שלך.

הגדר חשבון Shinyapps.io

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

שלב 1. התקן את rsconnect

install.packages ('rsconnect')

שלב 2. אשר חשבון

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

rsconnect :: setAccountInfo (שם = 'שם חשבון', אסימון = 'אסימון', סודי = 'סוד')

שלב 3. פרוס אפליקציה

השתמש בקוד שלמטה כדי לפרוס אפליקציות מבריקות.

ספרייה (rsconnect) rsconnect :: deployApp ('path / to / your / app')

לאחר ההגדרה, אתה מוכן לפרוס את היישומים המבריקים שלך.

עכשיו שלמדת כיצד ליצור ולהפעיל אפליקציות מבריקות, פרוס את האפליקציה שיצרנו זה עתה ל- Shinyapps.io כפי שהוסבר לעיל או לחץ על לְפַרְסֵם, שנמצא בפינה השמאלית העליונה של חלון היישום המבריק.

אני מקווהשמדריך זה של R Shiny עזר לך ללמוד כיצד ליצור ולהפעיל אפליקציה Shiny. תיהנה ליצור אפליקציות אינטרנט אינטראקטיביות ויפות באמצעות R Shiny.

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