आर में शाइनी के साथ इंटरएक्टिव वेब ऐप्स कैसे बनाएं

Ara Mem Sa Ini Ke Satha Intara Ektiva Veba Aipsa Kaise Bana Em



RStudio के एक बंडल, R शाइनी फ्रेमवर्क के कारण, R के साथ डायनामिक वेब ऐप्स बनाना अपेक्षाकृत आसान है। शाइनी का लाभ यह है कि यह आपके आर कोड को वेब पर डालना संभव बनाता है, जिससे यह उपयोगकर्ताओं की एक विस्तृत श्रृंखला के लिए अधिक सुलभ हो जाता है। आर शाइनी के साथ, आप बहुत शक्तिशाली डेटा रिपोर्ट और विज़ुअल बना सकते हैं जो उपयोगकर्ता को डेटा सेट का विश्लेषण करने की अनुमति देते हैं। शाइनी घटकों के साथ, HTML तत्वों का उपयोग प्रोग्राम की सामग्री को डिज़ाइन करने के लिए किया जा सकता है। आज का लेख आपको आर के शाइनी पैकेज का उपयोग करके एक इंटरैक्टिव वेब एप्लिकेशन के निर्माण की प्रक्रिया से परिचित कराता है। इसके लिए, सुनिश्चित करें कि 'RStudio' पहले से ही इंस्टॉल हो।

RStudio में शाइनी पैकेज स्थापित करें

RStudio के भीतर एक इंटरैक्टिव वेब एप्लिकेशन बनाने की दिशा में आगे बढ़ने से पहले, हमें इसमें 'शाइनी' पैकेज पहले से इंस्टॉल होना चाहिए। इसके लिए, आपको RStudio के 'टूल्स' मेनू का विस्तार करना होगा और उसके बाद 'पैकेज इंस्टॉल करें' विकल्प का विस्तार करना होगा। खुली हुई विंडो में, आपको उस पैकेज का उल्लेख करना होगा जिसे आप इंस्टॉल करना चाहते हैं, यानी 'चमकदार', और 'इंस्टॉल करें' बटन पर टैप करें। RStudio RStudio कंसोल में चमकदार पैकेज स्थापित करेगा।







आर में शाइनी के साथ शुरुआत करें

R में शाइनी के साथ आरंभ करने के लिए, आपको RStudio के पहले स्थान पर स्थित 'फ़ाइल' मेनू का उपयोग करके एक नई R फ़ाइल बनानी होगी। इसका विस्तार करें और 'आर स्क्रिप्ट' विकल्प के बाद 'नई फ़ाइल' विकल्प का उपयोग करें। 'शीर्षक रहित' स्क्रिप्ट फ़ाइल RStudio में खोली जाएगी। इसे अपने इच्छित स्थान पर 'आर' फ़ाइल के रूप में नाम बदलें।



अब, आर में एक इंटरैक्टिव एप्लिकेशन बनाने के लिए आवश्यक आवश्यक पैकेज लोड करें, यानी आर के 'लाइब्रेरी' फ़ंक्शन का उपयोग करें। 'अगर' स्टेटमेंट का उपयोग उन पैकेजों को इंस्टॉल करने के लिए किया जाता है जो पहले इंस्टॉल नहीं किए गए थे। शाइनी पैकेज का उपयोग कुछ ग्राफिकल विज़ुअलाइज़ेशन के साथ वेब अनुप्रयोगों के लिए एक इंटरैक्टिव इंटरफ़ेस बनाने के लिए किया जाता है। 'dplyr' पैकेज का उपयोग मुख्य रूप से कुछ उपयोगी कार्यों का उपयोग करके आर में डेटा हेरफेर को आसान बनाने के लिए किया जाता है।



अंत में, 'ggplot2' पैकेज को अनुकूलित और शक्तिशाली ग्राफ़ बनाकर डेटा विज़ुअलाइज़ेशन के एक महान स्रोत के रूप में लोड किया गया है।





अगर ( ! आवश्यकतानामस्थान ( 'चमकदार' , चुपचाप = सत्य ) ) {

स्थापित करना। संकुल ( 'चमकदार' )

}

अगर ( ! आवश्यकतानामस्थान ( 'dplyr' , चुपचाप = सत्य ) ) {

स्थापित करना। संकुल ( 'dplyr' )

}

अगर ( ! आवश्यकतानामस्थान ( 'ggplot2' , चुपचाप = सत्य ) ) {

स्थापित करना। संकुल ( 'ggplot2' )

}

पुस्तकालय ( चमकदार )

पुस्तकालय ( dplyr )

पुस्तकालय ( ggplot2 )

एक इंटरएक्टिव परीक्षा ग्रेडिंग सिस्टम बनाएं

इस ट्यूटोरियल के भीतर, हम छात्रों के लिए 100 में से प्राप्त अंकों के माध्यम से उनके प्राप्त ग्रेड प्राप्त करने के लिए एक 'परीक्षा ग्रेडिंग सिस्टम' बनाएंगे। प्रदान की गई स्क्रिप्ट एक शाइनी ऐप का 'यूआई' घटक है जो डिज़ाइन और लुक को निर्दिष्ट करती है। कार्यक्रम। प्रोग्राम एक फ़्लुइडपेज उत्पन्न करता है, एक अनुकूलनीय डिज़ाइन जिसे ब्राउज़र विंडो के लिए समायोजित करने के लिए स्केल किया जा सकता है।

एक 'टाइटलपैनल' और एक 'साइडबारलेआउट' 'फ्लूइडपेज' की संतान हैं। प्रोग्राम का 'परीक्षा ग्रेडिंग सिस्टम' शीर्षक वह सब कुछ है जो 'टाइटलपैनल' में प्रदर्शित होता है। एक 'साइडबारपैनल' और एक 'मेनपैनल' दो खंड हैं जिनका उपयोग 'साइडबारलेआउट' एप्लिकेशन को विभाजित करने के लिए करता है। 'साइडबारपैनल' में इनपुट की एक जोड़ी शामिल है: एक 'टेक्स्टएरियाइनपुट' जिसका नाम 'स्कोर' है और साथ ही एक 'एक्शनबटन' जिसका नाम 'कैलकुलेट' है।



'textAreaInput' का उपयोग करके प्रत्येक छात्र के लिए प्रति पंक्ति एक अंक दर्ज किया जा सकता है। ग्रेड मूल्यांकन 'एक्शनबटन' के उपयोग से शुरू किया जा सकता है। आउटपुट की एक जोड़ी 'मेनपैनल' में मौजूद है: एक 'टेबलआउटपुट' जिसका नाम 'रिजल्ट' है और एक 'प्लॉटआउटपुट' जिसका नाम 'रिजल्टग्राफ' है। 'टेबलआउटपुट' और 'प्लॉटआउटपुट' दोनों गणना के निष्कर्षों को एक ग्राफ के रूप में प्रस्तुत करेंगे।

उई <- द्रवपृष्ठ (

शीर्षक पैनल ( 'परीक्षा ग्रेडिंग प्रणाली' ) ,
साइडबारलेआउट (
साइडबार पैनल (
textAreaInput ( 'अंक' , 'छात्रों के लिए स्कोर दर्ज करें (प्रति पंक्ति एक):' , '' ) ,
एक्शनबटन ( 'गणना करें' , 'आइए ग्रेड की गणना करें' )
) ,
मुख्य पैनल (
टेबलआउटपुट ( 'परिणाम' ) ,
प्लॉटआउटपुट ( 'परिणाम ग्राफ़' )
) ) )

सर्वर विधि एप्लिकेशन के सर्वर-साइड लॉजिक को स्थापित करती है। छात्रों के अंक प्रारंभ में 'डेटा' नामक एक प्रतिक्रियाशील चर में संग्रहीत किए जाते हैं। इसके लिए, 'गणना करें' बटन की निगरानी आर की 'ऑब्जर्वएवेंट' विधि द्वारा की जाती है। बटन चालू होने के बाद, कोड प्रारंभ में टेक्स्ट फ़ील्ड इनपुट में दर्ज किए गए मानों को संख्यात्मक मानों में परिवर्तित करता है।

प्रत्येक स्कोर के बाद अगली पंक्ति में एक नया स्कोर इनपुट करने के लिए '\n' का उपयोग करके एक लाइन ब्रेक होता है। यह विधि जो भी स्कोर पाती है उसे 'डेटा' वेरिएबल में रखती है। यदि किसी उपयोगकर्ता के पास कोई इनपुट स्कोर नहीं है, तो विधि एक त्रुटि वाला संदेश दिखाती है।

सर्वर <- समारोह ( इनपुट आउटपुट ) {

डेटा <- प्रतिक्रियाशीलVal ( व्यर्थ )

निरीक्षणघटना ( इनपुट$गणना करें, {

अंक <- जैसा। संख्यात्मक ( असूचीबद्ध ( strsplit ( इनपुट$स्कोर, ' \एन ' ) ) )

अगर ( लंबाई ( अंक ) > 0 ) {

डेटा ( अंक )

} अन्य {

डेटा ( व्यर्थ )

शोमॉडल ( modalDialog (

शीर्षक = 'गलती' ,

'त्रुटि: कृपया मूल्य जोड़ें!' ,

आसानबंद करें = सत्य

) )

}

} )

दो आउटपुट, 'आउटपुट$रिजल्ट' प्लस 'आउटपुट$रिजल्टग्राफ', छात्र के अंक और प्राप्त ग्रेड दिखाने के लिए निर्दिष्ट हैं। रेंडरटेबल () डायनामिक विधि छात्र के परीक्षण अंकों और ग्रेड की एक डेटा तालिका तैयार करती है जिसे 'आउटपुट$परिणाम' के रूप में लेबल किया जाता है। रेंडरप्लॉट() विधि, जो इसी तरह प्रतिक्रियाशील है, छात्र ग्रेड के लिए एक बार ग्राफ़ उत्पन्न करती है और इसे 'आउटपुट$ResultGraph' आउटपुट में समान रूप से सहेजती है।

इसलिए, हर बार इनपुट डेटा अपडेट होने पर उनकी समीक्षा की जाएगी। if (!is.null(data())) अभिव्यक्ति यह निर्धारित करती है कि जो डेटा प्राप्त हो रहा है वह शून्य है या नहीं। यदि कथन खाली नहीं है तो उसकी स्क्रिप्ट निष्पादित की जाती है। छात्रों के लिए अंकों का एक वेक्टर इनपुट 'डेटा' बनाता है। प्रत्येक छात्र को केस_व्हेन() विधि का उपयोग करके उनके स्कोर के आधार पर एक ग्रेड दिया जाता है। डेटा.फ़्रेम() विधि का उपयोग करके छात्र ग्रेड और परीक्षण अंक वाला एक डेटा फ़्रेम बनाया जाता है। निम्नलिखित कॉलम डेटा फ़्रेम में जोड़े गए हैं: 'छात्र', 'स्कोर', और 'ग्रेड'। ग्रेड वितरण को तालिका() विधि का उपयोग करके 'ग्रेडकाउंट' नामक तालिका में संकलित किया जाता है।

आउटपुट$परिणाम <- रेंडरटेबल ( {

अगर ( ! है। व्यर्थ ( डेटा ( ) ) ) {

ग्रेड <- केस_कब (

डेटा ( ) > 80 ~ 'ए' ,

डेटा ( ) > 60 ~ 'बी' ,

डेटा ( ) > 40 ~ 'सी' ,

डेटा ( ) > 30 ~ 'डी' ,

सत्य ~ 'एफ'

)

डेटा। चौखटा ( विद्यार्थी = 1 : लंबाई ( डेटा ( ) ) , अंक = डेटा ( ) , श्रेणी = ग्रेड )

}

} )

आउटपुट$परिणामग्राफ़ <- रेंडरप्लॉट ( {

अगर ( ! है। व्यर्थ ( डेटा ( ) ) ) {

ग्रेड <- केस_कब (

डेटा ( ) > 80 ~ 'ए' ,

डेटा ( ) > 60 ~ 'बी' ,

डेटा ( ) > 40 ~ 'सी' ,

डेटा ( ) > 30 ~ 'डी' ,

सत्य ~ 'एफ'

)

ग्रेडगणना <- मेज़ ( ग्रेड )

बार चार्ट 'ggplot2' लाइब्रेरी का उपयोग करके बनाया गया है। गणना (प्रत्येक ग्रेड प्राप्त करने वाले छात्रों की कुल संख्या) और कॉलम ग्रेड एक डेटाफ़्रेम में बनाए जाते हैं। 'एक्स-अक्ष' पर 'ग्रेड' डेटा और 'वाई-अक्ष' पर 'गणना' डेटा के साथ एक बार ग्राफ़ जियोम_बार () विधि का उपयोग करके तैयार किया जाता है। स्टेट = 'पहचान' विकल्प ggplot2 को किसी भी प्रकार के परिवर्तन के बिना वास्तविक डेटा का उपयोग करने का निर्देश देता है। एक शीर्षक, एक एक्स-अक्ष लेबल और एक वाई-अक्ष लेबल सभी 'लैब' विधि के माध्यम से जोड़े जाते हैं। बार के रंग स्केल_फिल_मैनुअल() विधि का उपयोग करके निर्दिष्ट किए जाते हैं। थीम_मिनिमल() विधि का उपयोग करके अनावश्यक ग्रिड लाइनें और ओवरले घटक हटा दिए जाते हैं। शाइनीऐप(यूआई, सर्वर) विधि एक ऐप बनाती है।

ggplot ( डेटा = डेटा। चौखटा ( श्रेणी = नाम ( ग्रेडगणना ) , गिनती करना = जैसा। संख्यात्मक ( ग्रेडगणना ) ) ,
एईएस ( एक्स = ग्रेड, और = गिनें, भरें = श्रेणी ) ) +
जियोम_बार ( स्टेट = 'पहचान' ) +
एलएबी ( शीर्षक = 'ग्रेड वितरण' ,
एक्स = 'श्रेणी' ,
और = 'गिनती करना' ) +
स्केल_फिल_मैनुअल ( मान = सी ( 'ए' = 'हरा' , 'बी' = 'बैंगनी' , 'सी' = 'गुलाबी' ,
'डी' = 'नारंगी' , 'एफ' = 'लाल' ) ) +
थीम_न्यूनतम ( )
}
} )
}
चमकदार ऐप ( यूआई, सर्वर )

इस कोड को चलाने पर, हमें एक इंटरैक्टिव इंटरफ़ेस मिला जहां हमने कुछ निशान जोड़े और 'आइए ग्रेड की गणना करें' बटन पर क्लिक किया।

वह तालिका जिसमें छात्र के अंक और ग्रेड शामिल हैं, प्रदर्शित किया गया है, उसके बाद विभिन्न रंगों में ग्रेड वितरण का बार ग्राफ दिखाया गया है।

निष्कर्ष

यह मार्गदर्शिका RStudio के माध्यम से R भाषा में शाइनी पैकेज के उपयोग के महत्व को बताती है। अपने स्पष्टीकरण को पूरक करने के लिए, हमने 'शाइनी' पैकेज का उपयोग करके आर कोड में छात्रों की ग्रेडिंग प्रणाली के लिए एक इंटरैक्टिव वेब एप्लिकेशन का निर्माण किया।