R میں شائنی کے ساتھ انٹرایکٹو ویب ایپس کیسے بنائیں

R My Shayny K Sat An Rayk W Wyb Ayps Kys Bnayy



R Shiny فریم ورک کی وجہ سے، RStudio کا ایک بنڈل، R کے ساتھ متحرک ویب ایپس بنانا نسبتاً آسان ہے۔ شائنی کا فائدہ یہ ہے کہ یہ آپ کے R کوڈ کو ویب پر ڈالنا ممکن بناتا ہے، جس سے یہ صارفین کی وسیع رینج کے لیے زیادہ قابل رسائی ہے۔ R Shiny کے ساتھ، آپ بہت طاقتور ڈیٹا رپورٹس اور ویژول بنا سکتے ہیں جو صارف کو ڈیٹا سیٹ کا تجزیہ کرنے کی اجازت دیتے ہیں۔ چمکدار اجزاء کے ساتھ، HTML عناصر کو پروگرام کے مواد کو ڈیزائن کرنے کے لیے استعمال کیا جا سکتا ہے۔ آج کا مضمون آپ کو ایک انٹرایکٹو ویب ایپلیکیشن بنانے کے عمل سے گزرتا ہے جو R's Shiny پیکج کو استعمال کرتا ہے۔ اس کے لیے یقینی بنائیں کہ 'RStudio' پہلے سے انسٹال ہے۔

RStudio میں چمکدار پیکیج انسٹال کریں۔

RStudio کے اندر ایک انٹرایکٹو ویب ایپلیکیشن بنانے کی طرف بڑھنے سے پہلے، ہمارے پاس اس میں پہلے سے 'Sshiny' پیکیج انسٹال ہونا چاہیے۔ اس کے لیے، آپ کو RStudio کے 'Tools' مینو کو بڑھانے کی ضرورت ہے جس کے بعد 'Install Packages' آپشن آئے گا۔ کھلی ہوئی ونڈو کے اندر، آپ کو اس پیکیج کا ذکر کرنا ہوگا جسے آپ انسٹال کرنا چاہتے ہیں، یعنی 'چمکدار' اور 'انسٹال' بٹن پر ٹیپ کریں۔ RStudio چمکدار پیکیج کو RStudio کنسول میں انسٹال کرے گا۔







R میں چمکدار کے ساتھ شروع کریں۔

شائنی ان آر کے ساتھ شروع کرنے کے لیے، آپ کو RStudio کے پہلے مقام پر موجود 'فائل' مینو کا استعمال کرتے ہوئے ایک نئی R فائل بنانے کی ضرورت ہے۔ اسے پھیلائیں اور 'New File' آپشن استعمال کریں جس کے بعد 'R Script' آپشن استعمال کریں۔ 'بلا عنوان' اسکرپٹ فائل RStudio میں کھولی جائے گی۔ اسے اپنی مطلوبہ جگہ پر 'R' فائل کے نام سے تبدیل کریں۔



اب، R میں ایک انٹرایکٹو ایپلی کیشن بنانے کے لیے درکار ضروری پیکجز لوڈ کریں، یعنی R کے 'لائبریری' فنکشن کا استعمال کرتے ہوئے۔ 'if' اسٹیٹمنٹس ان پیکجز کو انسٹال کرنے کے لیے استعمال کیے جاتے ہیں جو پہلے انسٹال نہیں تھے۔ چمکدار پیکیج کا استعمال کچھ گرافیکل تصورات کے ساتھ ویب ایپلیکیشنز کے لیے ایک انٹرایکٹو انٹرفیس بنانے کے لیے کیا جاتا ہے۔ 'dplyr' پیکیج بنیادی طور پر کچھ مفید افعال کو استعمال کرکے R میں ڈیٹا کی ہیرا پھیری کو کم کرنے کے لیے استعمال کیا جاتا ہے۔



آخر میں، 'ggplot2' پیکج کو اپنی مرضی کے مطابق اور طاقتور گراف بنا کر ڈیٹا ویژولائزیشن کے ایک بہترین ذریعہ کے طور پر لوڈ کیا گیا ہے۔





اگر ( ! نام کی جگہ کی ضرورت ہے۔ ( 'چمکدار' ، خاموشی سے = سچ ہے۔ ) ) {

انسٹال کریں پیکجز ( 'چمکدار' )

}

اگر ( ! نام کی جگہ کی ضرورت ہے۔ ( 'dplyr' ، خاموشی سے = سچ ہے۔ ) ) {

انسٹال کریں پیکجز ( 'dplyr' )

}

اگر ( ! نام کی جگہ کی ضرورت ہے۔ ( 'ggplot2' ، خاموشی سے = سچ ہے۔ ) ) {

انسٹال کریں پیکجز ( 'ggplot2' )

}

کتب خانہ ( چمکدار )

کتب خانہ ( dplyr )

کتب خانہ ( ggplot2 )

ایک انٹرایکٹو امتحان گریڈنگ سسٹم بنائیں

اس ٹیوٹوریل کے اندر، ہم طلباء کے لیے ایک 'امتحانی گریڈنگ سسٹم' بنائیں گے تاکہ وہ 100 میں سے حاصل کردہ نمبروں کے ذریعے اپنے حاصل کردہ گریڈ حاصل کر سکیں۔ فراہم کردہ اسکرپٹ ایک چمکدار ایپ کا 'ui' جزو ہے جو کہ ڈیزائن اور شکل کی وضاحت کرتا ہے۔ پروگرام. پروگرام ایک fluidPage تیار کرتا ہے، ایک قابل موافق ڈیزائن جسے براؤزر ونڈو کے لیے ایڈجسٹ کرنے کے لیے چھوٹا کیا جا سکتا ہے۔

ایک 'titlePanel' اور 'sidebarLayout' 'fluidPage' کی اولاد ہیں۔ پروگرام کا 'Exam Grading System' ٹائٹل وہی ہے جو 'titlePanel' میں دکھایا گیا ہے۔ ایک 'sidebarPanel' اور 'mainPanel' وہ دو حصے ہیں جنہیں 'sidebarLayout' ایپلیکیشن کو تقسیم کرنے کے لیے استعمال کرتا ہے۔ ان پٹ کا ایک جوڑا 'سائیڈ بار پینل' میں شامل ہے: ایک 'ٹیکسٹ ایریا ان پٹ' جس کا نام 'اسکور' اور ایک 'ایکشن بٹن' ہے جس کا نام 'کیلکولیٹ' ہے۔



'textAreaInput' کا استعمال کرتے ہوئے ہر طالب علم کے لیے فی لائن ایک اسکور درج کیا جا سکتا ہے۔ گریڈ کا تعین 'ایکشن بٹن' کے استعمال سے شروع کیا جا سکتا ہے۔ آؤٹ پٹ کا ایک جوڑا 'مین پینل' میں موجود ہے: ایک 'ٹیبل آؤٹ پٹ' جس کا نام 'نتیجہ' اور ایک 'پلاٹ آؤٹ پٹ' جس کا نام 'رزلٹ گراف' ہے۔ دونوں 'ٹیبل آؤٹ پٹ' اور 'پلاٹ آؤٹ پٹ' حساب کے نتائج کو گراف کی شکل میں پیش کریں گے۔

ui <- سیال صفحہ (

ٹائٹل پینل ( 'امتحان کی درجہ بندی کا نظام' ) ,
سائڈبار لے آؤٹ (
سائڈبار پینل (
textAreaInput ( 'اسکور' , 'طلبہ کے لیے اسکور درج کریں (ایک سطر میں):' , '' ) ,
ایکشن بٹن ( 'حساب لگانا' , 'آئیے درجات کا حساب لگائیں' )
) ,
مین پینل (
ٹیبل آؤٹ پٹ ( 'نتیجہ' ) ,
پلاٹ آؤٹ پٹ ( 'رزلٹ گراف' )
) ) )

سرور کا طریقہ ایپلی کیشن کی سرور سائیڈ منطق کو قائم کرتا ہے۔ طلباء کے نمبر ابتدائی طور پر 'ڈیٹا' کے نام سے ایک رد عمل والے متغیر میں محفوظ کیے جاتے ہیں۔ اس کے لیے، 'کیلکولیٹ' بٹن کو R کے 'observeEvent' طریقہ سے مانیٹر کیا جاتا ہے۔ بٹن کے ٹرگر ہونے کے بعد، کوڈ ابتدائی طور پر ٹیکسٹ فیلڈ ان پٹ میں درج کردہ اقدار کو عددی اقدار میں تبدیل کرتا ہے۔

ہر اسکور کے بعد اگلی لائن میں ایک نیا سکور داخل کرنے کے لیے '\n' کا استعمال کرتے ہوئے لائن بریک ہوتا ہے۔ طریقہ 'ڈیٹا' متغیر میں جو بھی اسکور ملتا ہے اسے رکھتا ہے۔ اگر کسی صارف کے پاس کوئی سکور نہیں ہے، تو طریقہ غلطی کے ساتھ ایک پیغام دکھاتا ہے۔

سرور <- فنکشن ( ان پٹ، آؤٹ پٹ ) {

ڈیٹا <- reactiveVal ( خالی )

ایونٹ کا مشاہدہ ( ان پٹ$ کا حساب لگائیں، {

سکور <- کے طور پر عددی ( غیر فہرست ( strsplit ( ان پٹ$ سکور، ' \n ' ) ) )

اگر ( لمبائی ( سکور ) > 0 ) {

ڈیٹا ( سکور )

} اور {

ڈیٹا ( خالی )

شو موڈل ( موڈل ڈائیلاگ (

عنوان = 'خرابی' ,

'خرابی: براہ کرم قدر شامل کریں!' ,

آسان بند = سچ ہے۔

) )

}

} )

دو آؤٹ پٹ، 'output$Result' کے علاوہ 'output$ResultGraph'، طالب علم کے نمبروں اور حاصل کردہ گریڈز کو دکھانے کے لیے مخصوص کیے گئے ہیں۔ renderTable() متحرک طریقہ طالب علم کے امتحانی نمبروں اور درجات کا ڈیٹا ٹیبل تیار کرتا ہے جس پر 'output$Result' کا لیبل لگایا جاتا ہے۔ renderPlot() طریقہ، جو کہ اسی طرح ری ایکٹو ہے، طالب علم کے درجات کے لیے ایک بار گراف تیار کرتا ہے اور اسے 'output$ResultGraph' آؤٹ پٹ میں اسی طرح محفوظ کرتا ہے۔

لہذا، ان پٹ ڈیٹا کی تازہ کاری کے ہر بار ان کا جائزہ لیا جائے گا۔ if (!is.null(data())) اظہار اس بات کا تعین کرتا ہے کہ موصول ہونے والا ڈیٹا کالعدم ہے یا نہیں۔ 'اگر' بیان کی اسکرپٹ کو انجام دیا جاتا ہے اگر یہ خالی نہیں ہے۔ طلباء کے لیے اسکور کا ایک ویکٹر ان پٹ 'ڈیٹا' بناتا ہے۔ کیس_when() طریقہ استعمال کرتے ہوئے ہر طالب علم کو ان کے اسکور کی بنیاد پر ایک گریڈ دیا جاتا ہے۔ ایک ڈیٹا فریم جس میں طلباء کے درجات اور امتحانی نمبر ہوتے ہیں data.frame() طریقہ استعمال کرتے ہوئے بنایا جاتا ہے۔ درج ذیل کالم ڈیٹا فریم میں شامل کیے گئے ہیں: 'طالب علم'، 'اسکور'، اور 'گریڈ'۔ گریڈ کی تقسیم کو ٹیبل () طریقہ استعمال کرتے ہوئے 'گریڈ کاؤنٹ' نامی جدول میں مرتب کیا جاتا ہے۔

آؤٹ پٹ $نتیجہ <- رینڈر ٹیبل ( {

اگر ( ! ہے خالی ( ڈیٹا ( ) ) ) {

درجات <- کیس_جب (

ڈیٹا ( ) > 80 ~ 'ا' ,

ڈیٹا ( ) > 60 ~ 'B' ,

ڈیٹا ( ) > 40 ~ 'سی' ,

ڈیٹا ( ) > 30 ~ 'ڈی' ,

سچ ہے۔ ~ 'ایف'

)

ڈیٹا فریم ( طالب علم = 1 : لمبائی ( ڈیٹا ( ) ) ، سکور = ڈیٹا ( ) ، گریڈ = درجات )

}

} )

آؤٹ پٹ$رزلٹ گراف <- renderPlot ( {

اگر ( ! ہے خالی ( ڈیٹا ( ) ) ) {

درجات <- کیس_جب (

ڈیٹا ( ) > 80 ~ 'ا' ,

ڈیٹا ( ) > 60 ~ 'B' ,

ڈیٹا ( ) > 40 ~ 'سی' ,

ڈیٹا ( ) > 30 ~ 'ڈی' ,

سچ ہے۔ ~ 'ایف'

)

گریڈ کاؤنٹ <- ٹیبل ( درجات )

بار چارٹ 'ggplot2' لائبریری کا استعمال کرتے ہوئے بنایا گیا ہے۔ شمار (ہر گریڈ حاصل کرنے والے طلباء کی کل تعداد) اور کالم گریڈ ڈیٹا فریم میں بنائے جاتے ہیں۔ 'x-axis' پر 'گریڈ' ڈیٹا کے ساتھ ایک بار گراف اور 'y-axis' پر 'Count' ڈیٹا geom_bar() طریقہ استعمال کرتے ہوئے تیار کیا جاتا ہے۔ stat = 'identity' آپشن ggplot2 کو کسی بھی قسم کی تبدیلی کے بغیر اصل ڈیٹا کو استعمال کرنے کی ہدایت کرتا ہے۔ ایک عنوان، ایک x-axis لیبل، اور ایک y-axis لیبل سبھی 'لیبز' کے طریقہ کار کے ذریعے شامل کیے گئے ہیں۔ بار کے رنگ سکیل_فل_مینول () طریقہ استعمال کرتے ہوئے تفویض کیے گئے ہیں۔ تھیم_منیمل() طریقہ استعمال کرکے غیر ضروری گرڈ لائنز اور اوورلے اجزاء کو ہٹا دیا جاتا ہے۔ shinyApp(ui, سرور) طریقہ ایک ایپ بناتا ہے۔

ggplot ( ڈیٹا = ڈیٹا فریم ( گریڈ = نام ( گریڈ کاؤنٹ ) ، شمار = کے طور پر عددی ( گریڈ کاؤنٹ ) ) ,
aes ( ایکس = گریڈ، اور = گننا، بھرنا = گریڈ ) ) +
geom_bar ( اسٹیٹ = 'شناخت' ) +
لیبز ( عنوان = 'گریڈ کی تقسیم' ,
ایکس = 'گریڈ' ,
اور = 'شمار' ) +
سکیل_فِل_مینول ( اقدار = c ( 'ا' = 'سبز' , 'B' = 'جامنی' , 'سی' = 'گلابی' ,
'ڈی' = 'کینو' , 'ایف' = 'سرخ' ) ) +
تھیم_کم سے کم ( )
}
} )
}
چمکدار ایپ ( ui، سرور )

اس کوڈ کو چلانے پر، ہمیں ایک انٹرایکٹو انٹرفیس ملا جہاں ہم نے کچھ نشانات شامل کیے اور 'چلو کیلکولیٹ گریڈز' بٹن پر کلک کیا۔

طالب علم کے اسکور اور درجات پر مشتمل جدول ظاہر ہوتا ہے، اس کے بعد مختلف رنگوں میں گریڈ کی تقسیم کا بار گراف ہوتا ہے۔

نتیجہ

یہ گائیڈ RStudio کے ذریعے R زبان میں چمکدار پیکیج کے استعمال کی اہمیت کی وضاحت کرتا ہے۔ اپنی وضاحت کو پورا کرنے کے لیے، ہم نے 'Sshiny' پیکیج کو استعمال کرتے ہوئے R کوڈ میں طلباء کے گریڈنگ سسٹم کے لیے ایک انٹرایکٹو ویب ایپلیکیشن تیار کی۔