R-এ চকচকে কীভাবে ইন্টারেক্টিভ ওয়েব অ্যাপস তৈরি করবেন

R E Cakacake Kibhabe Intarektibha Oyeba A Yapasa Tairi Karabena



R চকচকে ফ্রেমওয়ার্কের কারণে, RStudio থেকে একটি বান্ডিল, R দিয়ে গতিশীল ওয়েব অ্যাপ তৈরি করা তুলনামূলকভাবে সহজ। চকচকে সুবিধা হল যে এটি ওয়েবে আপনার R কোড রাখা সম্ভব করে তোলে, এটি ব্যবহারকারীদের বিস্তৃত পরিসরের কাছে আরও অ্যাক্সেসযোগ্য করে তোলে। আর চকচকে, আপনি খুব শক্তিশালী ডেটা রিপোর্ট এবং ভিজ্যুয়াল তৈরি করতে পারেন যা ব্যবহারকারীকে ডেটা সেট বিশ্লেষণ করতে দেয়। চকচকে উপাদানগুলির সাথে, প্রোগ্রামের বিষয়বস্তু ডিজাইন করতে HTML উপাদানগুলি ব্যবহার করা যেতে পারে। আজকের নিবন্ধটি আপনাকে R এর চকচকে প্যাকেজ নিয়োগ করে একটি ইন্টারেক্টিভ ওয়েব অ্যাপ্লিকেশন তৈরির প্রক্রিয়ার মধ্য দিয়ে নিয়ে যায়। এর জন্য, 'RStudio' ইতিমধ্যে ইনস্টল করা আছে তা নিশ্চিত করুন।

RStudio-এ চকচকে প্যাকেজ ইনস্টল করুন

RStudio-এর মধ্যে একটি ইন্টারেক্টিভ ওয়েব অ্যাপ্লিকেশন তৈরির দিকে অগ্রসর হওয়ার আগে, আমাদের 'চকচকে' প্যাকেজটি ইতিমধ্যেই ইনস্টল করা উচিত। এর জন্য, আপনাকে RStudio-এর 'Tools' মেনুটি প্রসারিত করতে হবে এবং তারপরে 'Install Packages' বিকল্পটি দেখতে হবে। খোলা উইন্ডোর মধ্যে, আপনি যে প্যাকেজটি ইনস্টল করতে চান তা উল্লেখ করতে হবে, যেমন 'চকচকে' এবং 'ইনস্টল' বোতামে আলতো চাপুন। RStudio RStudio কনসোলে চকচকে প্যাকেজ ইনস্টল করবে।







আর তে চকচকে শুরু করুন

R-এ Shiny দিয়ে শুরু করতে, আপনাকে RStudio-এর প্রথম স্থানে অবস্থিত 'ফাইল' মেনু ব্যবহার করে একটি নতুন R ফাইল তৈরি করতে হবে। এটি প্রসারিত করুন এবং 'R Script' বিকল্পের পরে 'New File' বিকল্পটি ব্যবহার করুন। 'শিরোনামহীন' স্ক্রিপ্ট ফাইলটি আরস্টুডিওতে খোলা হবে। আপনার পছন্দসই স্থানে একটি 'R' ফাইল হিসাবে এটির নাম পরিবর্তন করুন।



এখন, R-এ একটি ইন্টারেক্টিভ অ্যাপ্লিকেশন তৈরি করার জন্য প্রয়োজনীয় প্যাকেজগুলি লোড করুন, যেমন R-এর 'লাইব্রেরি' ফাংশন ব্যবহার করে৷ 'if' স্টেটমেন্টগুলি আগে ইনস্টল করা হয়নি এমন প্যাকেজগুলি ইনস্টল করতে ব্যবহৃত হয়৷ চকচকে প্যাকেজটি কিছু গ্রাফিকাল ভিজ্যুয়ালাইজেশন সহ ওয়েব অ্যাপ্লিকেশনগুলির জন্য একটি ইন্টারেক্টিভ ইন্টারফেস তৈরি করতে ব্যবহৃত হয়। 'dplyr' প্যাকেজটি মূলত কিছু দরকারী ফাংশন ব্যবহার করে R-এ ডেটা ম্যানিপুলেশন সহজ করতে ব্যবহৃত হয়।



সবশেষে, 'ggplot2' প্যাকেজটি কাস্টমাইজড এবং শক্তিশালী গ্রাফ তৈরি করে ডেটা ভিজ্যুয়ালাইজেশনের একটি দুর্দান্ত উত্স হিসাবে লোড করা হয়েছে।





যদি ( ! প্রয়োজন নামস্থান ( 'চকচকে' , চুপচাপ = সত্য ) ) {

ইনস্টল প্যাকেজ ( 'চকচকে' )

}

যদি ( ! প্রয়োজন নামস্থান ( 'dplyr' , চুপচাপ = সত্য ) ) {

ইনস্টল প্যাকেজ ( 'dplyr' )

}

যদি ( ! প্রয়োজন নামস্থান ( 'ggplot2' , চুপচাপ = সত্য ) ) {

ইনস্টল প্যাকেজ ( 'ggplot2' )

}

লাইব্রেরি ( চকচকে )

লাইব্রেরি ( dplyr )

লাইব্রেরি ( ggplot2 )

একটি ইন্টারেক্টিভ পরীক্ষার গ্রেডিং সিস্টেম তৈরি করুন

এই টিউটোরিয়ালের মধ্যে, আমরা শিক্ষার্থীদের জন্য একটি 'পরীক্ষা গ্রেডিং সিস্টেম' তৈরি করব যাতে তারা 100 নম্বরের মধ্যে প্রাপ্ত নম্বরের মাধ্যমে তাদের অর্জিত গ্রেড পেতে পারে। প্রদত্ত স্ক্রিপ্টটি একটি চকচকে অ্যাপের 'ui' উপাদান যা এর নকশা এবং চেহারা নির্দিষ্ট করে কার্যক্রম. প্রোগ্রামটি একটি তরল পাতা তৈরি করে, একটি অভিযোজিত নকশা যা ব্রাউজার উইন্ডোর জন্য সামঞ্জস্য করার জন্য স্কেল করা যেতে পারে।

একটি 'টাইটেলপ্যানেল' এবং একটি 'সাইডবার লেআউট' হল 'ফ্লুইডপেজ' এর বংশধর। প্রোগ্রামের 'পরীক্ষা গ্রেডিং সিস্টেম' শিরোনামটি 'টাইটেলপ্যানেলে' প্রদর্শিত হয়। একটি 'সাইডবার প্যানেল' এবং একটি 'মেইনপ্যানেল' হল দুটি বিভাগ যা 'সাইডবার লেআউট' অ্যাপ্লিকেশনটিকে বিভক্ত করতে ব্যবহার করে। একজোড়া ইনপুট 'সাইডবার প্যানেল'-এ অন্তর্ভুক্ত করা হয়েছে: 'স্কোর' নামে একটি 'টেক্সটএরিয়াইনপুট' এবং 'গণনা' নামে একটি 'অ্যাকশন বোতাম'।



'টেক্সটএরিয়াইনপুট' ব্যবহার করে প্রতিটি শিক্ষার্থীর জন্য প্রতি লাইনে একটি স্কোর প্রবেশ করানো যেতে পারে। 'অ্যাকশন বোতাম' ব্যবহার করে গ্রেড মূল্যায়ন শুরু করা যেতে পারে। আউটপুটগুলির একটি জোড়া 'মেইনপ্যানেলে' উপস্থিত রয়েছে: 'ফলাফল' নামে একটি 'টেবিলআউটপুট' এবং 'রজাল্টগ্রাফ' নামে একটি 'প্লটআউটপুট'। 'টেবিলআউটপুট' এবং 'প্লটআউটপুট' উভয়ই গণনার ফলাফলগুলি একটি গ্রাফ আকারে উপস্থাপন করবে।

ui <- তরল পাতা (

শিরোনাম প্যানেল ( 'পরীক্ষা গ্রেডিং সিস্টেম' ) ,
সাইডবার লেআউট (
সাইডবার প্যানেল (
textAreaInput ( 'স্কোর' , 'ছাত্রদের জন্য স্কোর লিখুন (প্রতি লাইনে একটি):' , '' ) ,
অ্যাকশন বোতাম ( 'গণনা করা' , 'আসুন গ্রেড গণনা করি' )
) ,
প্রধান প্যানেল (
টেবিলআউটপুট ( 'ফলাফল' ) ,
প্লটআউটপুট ( 'ফলাফল গ্রাফ' )
) ) )

সার্ভার পদ্ধতি অ্যাপ্লিকেশনের সার্ভার-সাইড যুক্তি স্থাপন করে। শিক্ষার্থীদের জন্য মার্কগুলি প্রাথমিকভাবে 'ডেটা' নামে একটি প্রতিক্রিয়াশীল ভেরিয়েবলে সংরক্ষণ করা হয়। এর জন্য, 'গণনা করুন' বোতামটি R-এর 'observeEvent' পদ্ধতি দ্বারা পর্যবেক্ষণ করা হয়। বোতামটি ট্রিগার হওয়ার পরে, কোডটি প্রাথমিকভাবে টেক্সট ফিল্ড ইনপুটে প্রবেশ করা মানগুলিকে সংখ্যাসূচক মানগুলিতে রূপান্তরিত করে।

প্রতিটি স্কোর পরের লাইনে একটি নতুন স্কোর ইনপুট করতে “\n” ব্যবহার করে একটি লাইন বিরতি অনুসরণ করে। পদ্ধতিটি 'ডেটা' ভেরিয়েবলের মধ্যে যে স্কোর খুঁজে পায় তা রাখে। কোনো ব্যবহারকারীর ইনপুট কোনো স্কোর না থাকলে, পদ্ধতিটি একটি ত্রুটি সহ একটি বার্তা দেখায়।

সার্ভার <- ফাংশন ( ইনপুট আউটপুট ) {

তথ্য <- প্রতিক্রিয়াশীলভাল ( খালি )

ইভেন্ট পর্যবেক্ষণ ( ইনপুট$ গণনা করুন, {

স্কোর <- হিসাবে সংখ্যাসূচক ( তালিকামুক্ত ( strsplit ( ইনপুট $স্কোর, ' \n ' ) ) )

যদি ( দৈর্ঘ্য ( স্কোর ) > 0 ) {

তথ্য ( স্কোর )

} অন্য {

তথ্য ( খালি )

শোমোডাল ( মডেল ডায়ালগ (

শিরোনাম = 'ত্রুটি' ,

'ত্রুটি: মান যোগ করুন!' ,

সহজ বন্ধ = সত্য

) )

}

} )

দুটি আউটপুট, 'আউটপুট$ফলাফল' প্লাস 'আউটপুট$রেজাল্টগ্রাফ', শিক্ষার্থীদের মার্ক এবং প্রাপ্ত গ্রেড দেখানোর জন্য নির্দিষ্ট করা হয়েছে। renderTable() গতিশীল পদ্ধতি শিক্ষার্থীর পরীক্ষার মার্ক এবং গ্রেডের একটি ডেটা টেবিল তৈরি করে যাকে 'output$Result' হিসেবে লেবেল করা হয়। renderPlot() পদ্ধতি, যা একইভাবে প্রতিক্রিয়াশীল, ছাত্রদের গ্রেডের জন্য একটি বার গ্রাফ তৈরি করে এবং একইভাবে এটিকে 'output$ResultGraph' আউটপুটে সংরক্ষণ করে।

তাই, প্রতিবার ইনপুট ডেটা আপডেট করার সময় তাদের পর্যালোচনা করা হবে। if (!is.null(data())) এক্সপ্রেশনটি প্রাপ্ত করা ডেটা শূন্য কিনা তা নির্ধারণ করে। 'যদি' বিবৃতির স্ক্রিপ্টটি খালি না থাকলে সঞ্চালিত হয়। শিক্ষার্থীদের জন্য স্কোরের একটি ভেক্টর ইনপুট 'ডেটা' তৈরি করে। প্রতিটি ছাত্রকে case_when() পদ্ধতি ব্যবহার করে তাদের স্কোরের ভিত্তিতে একটি গ্রেড দেওয়া হয়। data.frame() পদ্ধতি ব্যবহার করে শিক্ষার্থীর গ্রেড এবং পরীক্ষার নম্বর সমন্বিত একটি ডেটা ফ্রেম তৈরি করা হয়। নিম্নলিখিত কলামগুলি ডেটা ফ্রেমে যুক্ত করা হয়েছে: “ছাত্র”, “স্কোর” এবং “গ্রেড”। গ্রেড বন্টন টেবিল() পদ্ধতি ব্যবহার করে 'GradeCount' নামক একটি টেবিলে কম্পাইল করা হয়।

আউটপুট $ফলাফল <- রেন্ডার টেবিল ( {

যদি ( ! হয় খালি ( তথ্য ( ) ) ) {

শ্রেণীসমূহ <- case_when (

তথ্য ( ) > 80 ~ 'ক' ,

তথ্য ( ) > 60 ~ 'বি' ,

তথ্য ( ) > 40 ~ 'গ' ,

তথ্য ( ) > 30 ~ 'ডি' ,

সত্য ~ 'চ'

)

তথ্য ফ্রেম ( ছাত্র = 1 : দৈর্ঘ্য ( তথ্য ( ) ) , স্কোর = তথ্য ( ) , শ্রেণী = শ্রেণীসমূহ )

}

} )

আউটপুট $ResultGraph <- রেন্ডারপ্লট ( {

যদি ( ! হয় খালি ( তথ্য ( ) ) ) {

শ্রেণীসমূহ <- case_when (

তথ্য ( ) > 80 ~ 'ক' ,

তথ্য ( ) > 60 ~ 'বি' ,

তথ্য ( ) > 40 ~ 'গ' ,

তথ্য ( ) > 30 ~ 'ডি' ,

সত্য ~ 'চ'

)

গ্রেড কাউন্ট <- টেবিল ( শ্রেণীসমূহ )

বার চার্টটি 'ggplot2' লাইব্রেরি ব্যবহার করে তৈরি করা হয়েছে। গণনা (প্রতিটি গ্রেড প্রাপ্ত শিক্ষার্থীর মোট সংখ্যা) এবং কলাম গ্রেড একটি ডেটাফ্রেমে তৈরি করা হয়েছে। geom_bar() পদ্ধতি ব্যবহার করে 'x-অক্ষ'-এ 'গ্রেড' ডেটা এবং 'y-অক্ষ'-এ 'গণনা' ডেটা সহ একটি বার গ্রাফ তৈরি করা হয়। stat = 'পরিচয়' বিকল্পটি ggplot2 কে কোনো প্রকার রূপান্তর ছাড়াই প্রকৃত ডেটা ব্যবহার করার নির্দেশ দেয়। একটি শিরোনাম, একটি x-অক্ষ লেবেল এবং একটি y-অক্ষ লেবেল সবই 'ল্যাব' পদ্ধতির মাধ্যমে যোগ করা হয়। বারের রং স্কেল_ফিল_ম্যানুয়াল() পদ্ধতি ব্যবহার করে বরাদ্দ করা হয়। অপ্রয়োজনীয় গ্রিড লাইন এবং ওভারলে উপাদানগুলি theme_minimal() পদ্ধতি ব্যবহার করে সরানো হয়। shinyApp(ui, সার্ভার) পদ্ধতি একটি অ্যাপ তৈরি করে।

ggplot ( তথ্য = তথ্য ফ্রেম ( শ্রেণী = নাম ( গ্রেড কাউন্ট ) , গণনা = হিসাবে সংখ্যাসূচক ( গ্রেড কাউন্ট ) ) ,
aes ( এক্স = গ্রেড, এবং = গুনুন, পূরণ করুন = শ্রেণী ) ) +
geom_bar ( stat = 'পরিচয়' ) +
ল্যাব ( শিরোনাম = 'গ্রেড বিতরণ' ,
এক্স = 'শ্রেণী' ,
এবং = 'গণনা' ) +
স্কেল_ফিল_ম্যানুয়াল ( মান = ( 'ক' = 'সবুজ' , 'বি' = 'বেগুনি' , 'গ' = 'গোলাপী' ,
'ডি' = 'কমলা' , 'চ' = 'লাল' ) ) +
থিম_মিনিমাল ( )
}
} )
}
চকচকে অ্যাপ ( ui, সার্ভার )

এই কোডটি চালানোর পরে, আমরা একটি ইন্টারেক্টিভ ইন্টারফেস পেয়েছি যেখানে আমরা কিছু চিহ্ন যোগ করেছি এবং 'লেটস ক্যালকুলেট গ্রেড' বোতামে ক্লিক করেছি।

শিক্ষার্থীর স্কোর এবং গ্রেড ধারণ করা টেবিলটি প্রদর্শিত হয়, তারপরে বিভিন্ন রঙে গ্রেড বিতরণের বার গ্রাফ প্রদর্শিত হয়।

উপসংহার

এই নির্দেশিকাটি RStudio-এর মাধ্যমে R ভাষায় চকচকে প্যাকেজ ব্যবহারের গুরুত্ব ব্যাখ্যা করে। আমাদের ব্যাখ্যার পরিপূরক করার জন্য, আমরা 'চকচকে' প্যাকেজটি ব্যবহার করে R কোডে শিক্ষার্থীদের গ্রেডিং সিস্টেমের জন্য একটি ইন্টারেক্টিভ ওয়েব অ্যাপ্লিকেশন তৈরি করেছি।