כיצד לבנות אפליקציות אינטרנט אינטראקטיביות עם Shiny ב-R

Kyzd Lbnwt Plyqzywt Yntrnt Yntr Qtybywt M Shiny B R



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

התקן את החבילה הזוהרת ב- RStudio

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







התחל עם Shiny ב-R

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



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



לבסוף, חבילת 'ggplot2' נטענת כמקור נהדר להדמיית נתונים על ידי יצירת גרפים מותאמים ועוצמתיים.





אם ( ! requireNamespace ( 'מַברִיק' , בשקט = נָכוֹן ) ) {

להתקין. חבילות ( 'מַברִיק' )

}

אם ( ! requireNamespace ( 'dplyr' , בשקט = נָכוֹן ) ) {

להתקין. חבילות ( 'dplyr' )

}

אם ( ! requireNamespace ( 'ggplot2' , בשקט = נָכוֹן ) ) {

להתקין. חבילות ( 'ggplot2' )

}

סִפְרִיָה ( מַברִיק )

סִפְרִיָה ( dplyr )

סִפְרִיָה ( ggplot2 )

בניית מערכת ציונים אינטראקטיבית לבחינות

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

'titlePanel' ו-'sidebarLayout' הם הצאצאים של ה-'fluidPage'. הכותרת 'מערכת ציון בחינות' של התוכנית היא כל מה שמוצג ב'לוח הכותרת'. 'Panel Sidebar' ו- 'MainPanel' הם שני הקטעים ש-'sidebarLayout' משתמש בהם כדי לפצל את היישום לתוכם. זוג כניסות כלולים ב-'sidebarPanel': 'textAreaInput' בשם 'score' בתוספת 'actionButton' בשם 'calculate'.



ניתן להזין ניקוד אחד בכל שורה עבור כל תלמיד באמצעות 'textAreaInput'. ניתן להתחיל את הערכת הציונים על ידי שימוש ב- 'actionButton'. זוג יציאות קיימות ב-'MainPanel': 'tableOutput' בשם 'Result' בתוספת 'plotOutput' בשם 'ResultGraph'. גם ה-'tableOutput' וגם 'plotOutput' יציגו את ממצאי החישוב בצורה של גרף.

ui <- fluidPage (

titlePanel ( 'מערכת ציון בחינות' ) ,
פריסת סרגל צד (
לוח סרגל צד (
textAreaInput ( 'ציון' , 'הזן ציונים לסטודנטים (אחד בכל שורה):' , '' ) ,
לחצן פעולה ( 'לחשב' , 'בואו לחשב ציונים' )
) ,
פאנל הראשי (
פלט טבלה ( 'תוֹצָאָה' ) ,
פלט עלילה ( 'ResultGraph' )
) ) )

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

כל ניקוד מלווה במעבר שורה באמצעות '\n' כדי להזין ניקוד חדש בשורה הבאה ממש. השיטה ממקמת כל ציון שהיא מוצאת במשתנה 'נתונים'. אם משתמש לא הזין ציון, השיטה מציגה הודעה עם שגיאה.

שרת <- פוּנקצִיָה ( פלט קלט ) {

נתונים <- reactiveVal ( ריק )

observeEvent ( קלט$לחשב, {

ציון <- כפי ש. מספרי ( לבטל את הרשימה ( strsplit ( קלט$ציון, ' \n ' ) ) )

אם ( אורך ( ציון ) > 0 ) {

נתונים ( ציון )

} אַחֵר {

נתונים ( ריק )

showModal ( ModalDialog (

כותרת = 'שְׁגִיאָה' ,

'שגיאה: נא להוסיף ערך!' ,

קל סגור = נָכוֹן

) )

}

} )

שני פלטים, 'output$Result' בתוספת 'output$ResultGraph', מצוינים כדי להציג את ציוני התלמידים והציונים שהושגו. השיטה הדינמית renderTable() מייצרת טבלת נתונים של ציוני המבחן והציונים של התלמיד, המסומנת בתור 'output$Result'. שיטת renderPlot(), שהיא גם תגובתית, מייצרת גרף עמודות עבור ציוני תלמידים ושומרת אותו בפלט 'output$ResultGraph' באופן דומה.

לפיכך, הם ייבדקו בכל פעם שנתוני הקלט יתעדכנו. הביטוי if (!is.null(data())) קובע אם הנתונים המתקבלים הם null או לא. הסקריפט של הצהרת 'if' מבוצע אם הוא אינו ריק. וקטור של ציונים לתלמידים מרכיב את הקלט 'נתונים'. כל תלמיד מקבל ציון על סמך הציון שלו בשיטת case_when() . מסגרת נתונים המכילה את ציוני התלמידים וציוני המבחן נוצרת בשיטת data.frame() . העמודות הבאות מתווספות למסגרת הנתונים: 'תלמיד', 'ציון' ו'ציון'. התפלגות הציונים מורכבת בטבלה בשם 'GradeCount' בשיטת table() .

output$Result <- renderTable ( {

אם ( ! הוא. ריק ( נתונים ( ) ) ) {

ציוני <- מקרה_מתי (

נתונים ( ) > 80 ~ 'א' ,

נתונים ( ) > 60 ~ 'ב' ,

נתונים ( ) > 40 ~ 'ג' ,

נתונים ( ) > 30 ~ 'ד' ,

נָכוֹן ~ 'ו'

)

נתונים. מִסגֶרֶת ( סטוּדֶנט = 1 : אורך ( נתונים ( ) ) , ציון = נתונים ( ) , כיתה = ציוני )

}

} )

output$ResultGraph <- renderPlot ( {

אם ( ! הוא. ריק ( נתונים ( ) ) ) {

ציוני <- מקרה_מתי (

נתונים ( ) > 80 ~ 'א' ,

נתונים ( ) > 60 ~ 'ב' ,

נתונים ( ) > 40 ~ 'ג' ,

נתונים ( ) > 30 ~ 'ד' ,

נָכוֹן ~ 'ו'

)

ספירת ציונים <- שולחן ( ציוני )

תרשים העמודות נוצר באמצעות ספריית 'ggplot2'. ספירה (המספר הכולל של תלמידים שקיבלו כל ציון) והעמודה ציון נוצרים ב-DataFrame. גרף עמודות עם נתוני 'Grade' ב-'x-axis' ונתוני 'Count' ב-'y-axis' מופק בשיטת geom_bar()‎. האפשרות stat = 'זהות' מורה ל-ggplot2 להשתמש בנתונים בפועל ללא כל סוג של טרנספורמציה. כותרת, תווית ציר x ותווית ציר y מתווספות כולם בשיטת 'labs'. הצבעים של הסרגל מוקצים בשיטת scale_fill_manual() . קווי רשת מיותרים ורכיבי שכבת-על מוסרים באמצעות שיטת theme_minimal() . שיטת shinyApp(ui, שרת) בונה אפליקציה.

ggplot ( נתונים = נתונים. מִסגֶרֶת ( כיתה = שמות ( ספירת ציונים ) , לספור = כפי ש. מספרי ( ספירת ציונים ) ) ,
aes ( איקס = ציון, ו = לספור, למלא = כיתה ) ) +
geom_bar ( סטט = 'זהות' ) +
מעבדות ( כותרת = 'חלוקת ציונים' ,
איקס = 'כיתה' ,
ו = 'לספור' ) +
scale_fill_manual ( ערכים = ג ( 'א' = 'ירוק' , 'ב' = 'סָגוֹל' , 'ג' = 'וָרוֹד' ,
'ד' = 'תפוז' , 'ו' = 'אָדוֹם' ) ) +
theme_minimal ( )
}
} )
}
shinyApp ( ui, שרת )

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

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

סיכום

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