R Shiny Tutorial: كل ما تحتاج إلى معرفته



سيوفر لك هذا البرنامج التعليمي R Shiny معرفة مفصلة وشاملة عن R Shiny وكيفية إنشاء تطبيقات ويب تفاعلية.

مع تطور التكنولوجيا ، ظهرت أدوات وأطر جديدة لبناء تطبيقات الويب التي تعرض إحصاءات في الوقت الفعلي ، والخرائط ، والرسوم البيانية. نظرًا لأن هذه الوظائف تتطلب معالجة ومزامنة عالية ، يتم استخدام لغات البرمجة لتقليل وقت تحميل الخادم. في هذا البرنامج التعليمي R Shiny ، سأشرح كيفية تحقيق أقصى استفادة من R في تطبيقات الويب الديناميكية.

سوف نغطي ونفهم المواضيع التالية:





ما هو R Shiny؟

Shiny هي حزمة R تتيح للمستخدمين إنشاء تطبيقات ويب تفاعلية. تنشئ هذه الأداة تطبيق ويب مكافئًا بتنسيق HTML من رمز Shiny. نقوم بدمج كود HTML و CSS الأصلي مع وظائف R Shiny لجعل التطبيق أنيقًا. يجمع Shiny بين القوة الحسابية لـ R مع تفاعل الويب الحديث.ينشئ Shiny تطبيقات الويب التي يتم نشرها على الويب باستخدام خادمك أو خدمات استضافة R Shiny.

ميزات R Shiny:

  • أنشئ تطبيقات سهلة بمعرفة أساسية أو بدون معرفة بأدوات الويب
  • ادمج Shiny مع أدوات الويب الأصلية لتحسين المرونة والإنتاجية
  • وظائف I / O والتقديم سابقة البناء
  • عرض سهل لمحتوى التطبيق بدون إعادة تحميل متعددة
  • ميزة لإضافة مخرجات محسوبة (أو معالجة) من نصوص R.
  • أضف التقارير الحية والمرئيات.

هذا يقودنا إلى السؤال:



كيف يختلف تطبيق Shiny عن التطبيقات التقليدية؟

دعنا نأخذ مثالاً لتطبيق الطقس ، عندما يقوم المستخدم بتحديث / تحميل الصفحة أو تغيير أي إدخال ، يجب أن يقوم بتحديث الصفحة بأكملها أو جزء من الصفحة باستخدام JS. هذا يضيف حمولة إلى جانب الخادم للمعالجة. يسمح Shiny للمستخدم بعزل أو عرض (أو إعادة تحميل) العناصر في التطبيق مما يقلل من تحميل الخادم. كان التمرير عبر الصفحات سهلاً في تطبيقات الويب التقليدية ولكنه كان صعبًا مع التطبيقات اللامعة. تلعب بنية الكود الدور الرئيسي في فهم الكود وتصحيحه. هذه الميزة ضرورية للتطبيقات اللامعة فيما يتعلق بالتطبيقات الأخرى.

دعنا ننتقل إلى الموضوع التالي في البرنامج التعليمي R Shiny ، تثبيت حزمة R Shiny.

تثبيت R Shiny

يشبه تثبيت Shiny تثبيت أي حزمة أخرى في R. Go to R وحدة التحكم وقم بتشغيل الأمر أدناه لتثبيت حزمة Shiny.



install.packages (لامعة)

تثبيت البرنامج التعليمي R Shiny - R shiny - Edureka

بمجرد التثبيت ، قم بتحميل حزمة Shiny لإنشاء تطبيقات لامعة.

مكتبة (لامعة)

قبل أن ننتقل إلى أبعد من ذلك في هذا البرنامج التعليمي اللامع ، دعنا نرى ونفهم هيكل تطبيق لامع.

هيكل تطبيق لامع

يتكون اللمعان من 3 مكونات:

الفرق بين c # و c ++
  1. واجهة المستخدم
  2. الخادم
  3. تطبيق ShinyApp

واحد.وظيفة واجهة المستخدم

واجهة المستخدم (UI) تحدد وظيفة تخطيط ومظهر التطبيق. يمكنك إضافة علامات CSS و HTML داخل التطبيق لجعل التطبيق أكثر قابلية للتقديم. تحتوي الوظيفة على جميع المدخلات والمخرجات التي سيتم عرضها في التطبيق. يتم تعريف كل عنصر (قسم أو علامة تبويب أو قائمة) داخل التطبيق باستخدام الوظائف. يتم الوصول إليها باستخدام معرف فريد ، مثل عناصر HTML.دعونا نتعلم المزيد عن مختلفالوظائف المستخدمة في التطبيق.

وظائف تخطيط لامعة

  • headerPanel ()إضافة عنوان إلى التطبيق. العنوانPanel () يحدد العنوان الفرعي للتطبيق. انظر الصورة أدناه لفهم أفضل headerPanel و العنوان .
  • الشريط الجانبي ()يحدد التخطيط لعقد الشريط الجانبي و لوحة رئيسية عناصر. يقسم التخطيط شاشة التطبيق إلى لوحة الشريط الجانبي واللوحة الرئيسية. على سبيل المثال ، في الصورة أدناه ، المستطيل الأحمر هو لوحة رئيسية المساحة ومساحة المستطيل الأسود عموديًا الشريط الجانبي منطقة.

  • ويلبانيل ()يعرّف الحاوية التي تحتوي على كائنات إدخال / إخراج لتطبيق كائنات متعددة في نفس الشبكة.
  • tabsetPanel ()ينشئ حاوية لعقد علامات التبويب. tabPanel () يضيف علامة تبويب في التطبيق عن طريق تحديد عناصر ومكونات علامة التبويب. في الصورة أدناه ، الأسودالمستطيل هو tabsetPanel الكائن والمستطيل الأحمر هو tabPanel موضوع.
  • navlistPanel ()يوفر قائمة جانبية بها روابط لألواح علامات تبويب مختلفة مماثلة لـ tabsetPanel () مثل قائمة عمودية على الجانب الأيسر من الشاشة. في الصورة أدناه ، المستطيل الأسود هو navlistPanel الكائن والمستطيل الأحمر هو tabPanel موضوع.

إلى جانب وظائف التخطيط اللامع ، يمكنك أيضًا إضافة CSS مضمنة إلى كل عنصر واجهة مستخدم في التطبيق.يشتمل تطبيق Shiny على ميزات تقنيات الويب جنبًا إلى جنب مع ميزات ووظائف R اللامعة لإثراء التطبيق. استخدم علامات HTML داخل تطبيق Shiny باستخدام العلامات $.

التخطيط جاهز ، حان الوقت لإضافة الأدوات إلى التطبيق. يوفر Shiny عناصر إدخال وإخراج مختلفة للمستخدم لتفاعل المستخدم. دعونا نناقش بعض وظائف الإدخال والإخراج.

وظائف الإدخال لامعة

تحتوي كل عنصر واجهة مستخدم على تسمية ومعرف ومعلمات أخرى مثل الاختيار والقيمة والمحددة والحد الأدنى والحد الأقصى وما إلى ذلك.

  • حدد الإدخال ()- إنشاء عنصر HTML منسدل.
selectInput ('select'، h3 ('Select box')، الاختيارات = list ('Choice 1' = 1، 'Choice 2' = 2، 'Choice 3' = 3)، selected = 1)

  • إدخال رقمي ()- منطقة الإدخال لكتابة رقم أو نص.
dateInput ('num'، 'Date input'، value = '2014-01-01') numericInput ('num'، 'Numeric input'، value = 1) textInput ('num'، 'Numeric input، value =' أدخل النص...')

  • أزرار الراديو()- إنشاء أزرار اختيار لإدخال المستخدم.
radioButtons ('radio' ، h3 ('أزرار الراديو') ، الاختيارات = القائمة ('الاختيار 1' = 1 ، 'الاختيار 2' = 2 ، 'الاختيار 3' = 3) ، المحدد = 1)

وظائف الإخراج لامعة

يوفر Shiny وظائف الإخراج المختلفة التي يتم عرضها ر المخرجات مثل المؤامرات والصور والجداول وما إلى ذلك التي تعرض المقابلة ر موضوع.

  • مؤامرة الإخراج ()- عرض الكائن R مؤامرة.
مؤامرةOutput'top_batsman ')
  • الجدول الإخراج ()- يعرض الإخراج كجدول.
tableOutput'player_table ')

2. وظيفة الخادم

الخادم وظيفة ديحدد منطق جانب الخادم لتطبيق Shiny. يتضمن إنشاء وظائف ومخرجات تستخدم المدخلات لإنتاج أنواع مختلفة من المخرجات. يستدعي كل عميل (مستعرض ويب) وظيفة الخادم عند تحميل تطبيق Shiny لأول مرة. يخزن كل ناتج القيمة المرجعة من وظائف العرض.

تلتقط هذه الوظائف تعبير R وتقوم بإجراء العمليات الحسابية والمعالجة المسبقة للتعبير. استخدم وظيفة العرض * التي تتوافق مع الإخراج الذي تحدده. نصل إلى مدخلات الحاجياتباستخدام إدخال $ [معرف القطعة] . متغيرات الإدخال هذه هي قيم تفاعلية. يجب أن تكون أي متغيرات وسيطة تم إنشاؤها باستخدام متغيرات الإدخال تفاعلية باستخدام تفاعلي ({}) . الوصول إلى المتغيرات باستخدام ().

يجعل * تقوم الوظائف بإجراء الحساب داخل وظيفة الخادم وتخزين متغيرات الإخراج. يجب حفظ الإخراج باستخدام إخراج $ [اسم متغير الإخراج] . كل يجعل * تأخذ الدالة وسيطة واحدة ، أي تعبير R محاط بأقواس ، {}.

3. وظيفة ShinyApp

shinyApp ()الوظيفة هي قلبالتطبيق الذي يدعو بصلة و الخادم وظائف لإنشاء تطبيق لامع.

توضح الصورة أدناه الخطوط العريضة لتطبيق Shiny.

دعنا ننتقل إلى الجزء التالي في البرنامج التعليمي R Shiny لإنشاء أول تطبيق R Shiny.

إنشاء مشروع ويب لامع

اذهب إلى ملف وإنشاء ملف مشروع جديد في أي دليل -> تطبيق ويب لامع -> [اسم دليل التطبيق اللامع]. أدخل اسم الدليل وانقر موافق .

سيحتوي كل مشروع تطبيق Shiny جديد على مثال مدرج تكراري لفهم أساسيات التطبيق اللامع. يحتوي تطبيق المدرج التكراري على شريط تمرير متبوعًا بمدرج تكراري يقوم بتحديث الإخراج لتغيير في شريط التمرير. يوجد أدناه إخراج تطبيق الرسم البياني.

كيفية رفع رقم إلى قوة في جافا

لتشغيل تطبيق Shiny ، انقر فوق قم بتشغيل التطبيق زر في الزاوية اليمنى العليا من الجزء المصدر. يعرض التطبيق Shiny عنصر واجهة مستخدم منزلق يأخذ عدد الصناديق كمدخلات ويعرض الرسم البياني وفقًا للإدخال.

الآن بعد أن فهمت الهيكل وكيفية تشغيل تطبيق Shiny. دعنا ننتقل إلى إنشاء أول تطبيق لامع.

قم بإنشاء أول تطبيق لامع

يمكنك إما إنشاء مشروع جديد أو المتابعة في نفس دليل العمل. في هذا البرنامج التعليمي R Shiny ، سننشئ تطبيقًا بسيطًا لامعًا لعرض إحصائيات IPL. يمكن تنزيل مجموعة البيانات المستخدمة في التطبيق هنا . تتكون مجموعة البيانات من ملفين ، deliveryies.csv يحتوي على نقاط تسليم لكل كرة (فوق) رجل المضرب ، الرامي ، تفاصيل الجري و Match.csv يحتوي الملف على تفاصيل المباراة مثل موقع المطابقة وتفاصيل القذف والمكان والمباراة. يتطلب التطبيق أدناه معرفة أساسية بـ dplyr و لفهم البرنامج التعليمي أدناه.

اتبع الخطوات أدناه لإنشاء أول تطبيق لامع.

الخطوة 1 : إنشاء مخطط تطبيق لامع.

امسح الكود الحالي باستثناء تعريفات الوظائف في ملف تطبيق . ر ملف.

الخطوة 2 : تحميل المكتبات والبيانات.

في هذه الخطوة ، نقوم بتحميل الحزم والبيانات المطلوبة. بعد ذلك ، قم بتنظيف وتحويل البيانات المستخرجة إلى التنسيق المطلوب. أضف الكود أدناه من قبل بصلة و الخادم وظيفة.

الشفرة:

مكتبة (لامعة) (tidyverse) # تحميل مجموعة البيانات --------------------------------------- ---------------- delivery = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv'، stringsAsFactors = FALSE) متطابقات = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv'، stringsAsFactors = FALSE) # تنظيف مجموعة البيانات --------------------------------------------- --------- الأسماء (المطابقات) [1] = 'match_id' IPL = dplyr :: inner_join (التطابقات ، عمليات التسليم)

تفسير :

يتم تحميل أول سطرين مرتبة و لامع صفقة. يقوم السطران التاليان بتحميل عمليات تسليم مجموعات البيانات والمطابقات وتخزينها في المتغيراتالولاداتواعواد الكبريت. يقوم آخر سطرين بتحديث اسم عمود ملفاعواد الكبريتلأداء صلة داخلية معالولاداتالطاولة. نقوم بتخزين نتيجة الانضمام فيIPLمتغير.

الخطوه 3 : قم بإنشاء تخطيط تطبيق Shiny .

كما تمت مناقشته من قبل ، فإن ملف بصلة تحدد الوظيفة مظهر التطبيق والأدوات والكائنات في تطبيق Shiny.دعونا نناقش الشيء نفسه بالتفصيل.

الشفرة

بصلة<- 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 () أو العنوانPanel () ويتبعه tabsetPanel لتحديد عدة علامات تبويب في التطبيق. tabPanel () يحدد الكائنات لكل علامة تبويب ، على التوالي. كل tabPanel () يتكون من العنوان و لوحة رئيسية(). لوحة رئيسية() ينشئ حاوية بعرض 12 ، أي نافذة كاملة ومحاذاة كائنات الإدخال والإخراج في المركز.

تفسير

يتكون التطبيق من علامتي تبويب: الموسم و فوز الفريق والنقاط.

خوارزمية البحث الثنائي في جافا

الموسم تتكون علامة التبويب من حدد المدخلات ( ) ، زر الإرسال والجدول. يستخدم season_year لقراءة المدخلات من lمن القيم. الجدول الإخراج () يعرض إخراج الجدول المحسوب على وظيفة الخادم.يتم عرض Table player_table أسفل الزر المحدد في وظيفة الخادم والتي سيتم مناقشتها في الخطوة التالية. فوز الفريق والنقاط تعرض علامة التبويب الفوز على مستوى الفريق والنقاط في المخططات الشريطية ذات الصلة. مؤامرة الإخراج () يعرض المخرجات التي تم إرجاعها من التقديم * المهام. يتم تضمين جميع وظائف الإخراج والإدخال داخل علامة div لإضافة تصميم مضمّن.

الآن بعد أن أصبحنا على دراية بوظيفة واجهة المستخدم ، دعنا نمضي قدمًا في فهم واستخدام وظيفة الخادم في برنامجنا التعليمي R Shiny.

الخطوة 4: قم بإضافة عبارات وظيفة الخادم

ال الخادم تتضمن الوظيفة إنشاء وظائف و outputs التي تستخدم مدخلات المستخدم لإنتاج أنواع مختلفة من المخرجات. اليتم شرح وظيفة الخادم خطوة بخطوة أدناه.

match_year = رد فعل ({مباريات٪>٪ filter (الموسم == إدخال $ season_year)}) مباراة فاصلة = رد فعل ({nth (sort (match_year () $ match_id، انخفاض = TRUE)، 4)}) match_played = رد الفعل ({match_year) ()٪>٪ filter (match_id٪ group_by (team1)٪>٪ تلخيص (count = n ())}) t2 = رد فعل ({match_played ()٪>٪ group_by (team2)٪>٪ تلخيص (count = n ( ))}) wl = رد الفعل ({match_played ()٪>٪ filter (الفائز! ​​= '')٪>٪ group_by (الفائز)٪>٪ التلخيص (no_of_wins = n ())}) wl1 = رد الفعل ({match_played ( )٪>٪ group_by (الفائز)٪>٪ تلخيص (no_of_wins = n ())}) مرتبطة = رد فعل ({match_played ()٪>٪ filter (الفائز == '')٪>٪ حدد (team1، team2)} ) playertable = رد فعل ({data.frame (Teams = t1 () $ team1، Played = t1 () $ count + t2 () $ count، Wins = wl () $ no_of_wins، Points = wl () $ no_of_wins * 2) })

يتم لعب مباريات مرشح الكود أعلاه قبل التصفيات كل عام ، وتخزين النتيجة في متغير match_played.player_tableيحتوي الجدول على إحصائيات المباريات على مستوى الفريق ، مثل اللعب والانتصارات والنقاط. المتغيراتالمبارياتوplayer_tableوt1وربط، إلخ كلها وسيطة قيم رد الفعل . يجب الوصول إلى هذه المتغيرات باستخدام () كما هو موضح في الكود أعلاه.player_tableيتم عرضه باستخدام وظيفة renderTable. بعد ذلك ، قم بإنشاء متغير الإخراج لتخزين playertable.

الإخراج $ player_table = renderTable ({playertable ()})

يتيح الآن إنشاء مخططات شريطية لإظهار الانتصارات والنقاط التي سجلها كل فريق في الموسم. يعرض الكود أدناه مخططات شريطية باستخدام ggplot. RenderPlot () يجلب الكائن ggplot ويخزن النتيجة في متغيرwins_bar_plotرمز ggplot واضح بذاته ، فهو يشتمل على وظائف أساسية للرسومات ورسم الخرائط لتحرير وسيلة الإيضاح والتسميات والمؤامرة.

output $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9،]، aes (الفائز ، no_of_wins ، ملء = الفائز)) + geom_bar (stat = 'Identity') + theme_classic () + xlab ('Teams') + ylab ('Number Of Wins') + theme (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 = الفائز، (no_of_wins + 0.6)، label = no_of_wins، size = 7))}) إخراج $ Points_bar_plot = renderPlot ({ggplot (playertable ()، 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 ( الحجم = 14) ، axis.title = element_text (الحجم = 14)) + geom_text (aes (الفرق ، (النقاط + 1) ، التسمية = النقاط ، الحجم = 7))})

الخطوة 5: قم بتشغيل تطبيق Shiny.

انقر فوق تشغيل التطبيق. مع التشغيل الناجح ، سيبدو تطبيقك اللامع كما يلي. أي خطأ أو تحذيرالمتعلقة بالتطبيق ، سيتم عرضها في R Console.

Tab1 - الموسم

Tab2 - فوز الفريق ونقاطه

دعونا نرى كيفلاقامةحساب Shinyapps.io لنشر تطبيقاتك اللامعة.

قم بإعداد حساب Shinyapps.io

اذهب إلى سhinyapps.io وقم بتسجيل الدخول باستخدام معلوماتك ، ثم أدخل اسم حساب فريدًا للصفحة واحفظه. بعد الحفظ بنجاح ، سترى إجراءً مفصلاً لنشر التطبيقات من وحدة التحكم R. اتبع الإجراء أدناه لتهيئة حسابك في Rstudio.

الخطوة 1. قم بتثبيت rsconnect

install.packages ('rsconnect')

الخطوة 2. تفويض الحساب

ال rsconnect يجب أن يتم تفويض الحزمة إلى حسابك باستخدام رمز وسر. للقيام بذلك ، انسخ الأمر بالكامل كما هو موضح أدناه في صفحة لوحة المعلومات الخاصة بك في ر وحدة التحكم. بمجرد إدخال الأمر بنجاح في R ، أصرح لك الآن بنشر التطبيقات على حساب Shinyapps.io الخاص بك.

rsconnect :: setAccountInfo (الاسم = 'اسم الحساب' ، الرمز المميز = 'الرمز المميز' ، السر = 'السر')

الخطوه 3. نشر التطبيق

استخدم الكود أدناه لنشر تطبيقات Shiny.

مكتبة (rsconnect) rsconnect :: publishApp ('path / to / your / app')

بمجرد التعيين ، تكون جاهزًا لنشر تطبيقاتك اللامعة.

الآن بعد أن تعلمت كيفية إنشاء تطبيقات Shiny وتشغيلها ، انشر التطبيق الذي أنشأناه للتو في Shinyapps.io كما هو موضح أعلاه أو انقر فوق ينشر، الموجودة في الزاوية العلوية اليمنى من نافذة تطبيق Shiny.

آملأن هذا البرنامج التعليمي R Shiny يساعدك على تعلم كيفية إنشاء وتشغيل تطبيق Shiny. استمتع بإنشاء تطبيقات ويب تفاعلية وجميلة باستخدام R Shiny.

إذا كنت ترغب في تعلم برمجة R وبناء مهنة ملونة في تحليلات البيانات ، فراجع موقعنا الذي يأتي مع تدريب مباشر بقيادة مدرب وخبرة مشروع واقعية. سيساعدك هذا التدريب على فهم تحليلات البيانات ويساعدك على تحقيق التمكن من الموضوع.