डेटा साइंस समस्याओं पर काम करते समय, आप एक इंटरैक्टिव वातावरण सेट करना चाह सकते हैं ताकि किसी प्रोजेक्ट का कोड लिखें और दूसरों के साथ साझा करें। आप इसे एक नोटबुक से आसानी से सेट कर सकते हैं।
अन्य मामलों में, आप केवल अपने डेटा साइंस समस्या के विश्लेषण के लिए अपनाए गए वर्कफ़्लो और प्राप्त परिणामों के बारे में संप्रेषित करना चाहेंगे। एक पारदर्शी और पुनरुत्पाद्य रिपोर्ट के लिए, नोटबुक भी उपयोगी साबित हो सकती है।
बिलकुल सही; नोटबुक्स उन स्थितियों के लिए उपयुक्त हैं जहाँ आप साधारण पाठ को समृद्ध तत्वों जैसे ग्राफ़िक्स, गणनाएँ आदि के साथ संयोजित करना चाहते हैं।
यह ट्यूटोरियल निम्नलिखित विषयों को कवर करेगा:
R और Jupyter Notebook
जो आप सोच सकते हैं, उसके विपरीत, Jupyter आपको केवल Python तक सीमित नहीं करता: यह नोटबुक एप्लिकेशन भाषा-निरपेक्ष है, जिसका अर्थ है कि आप अन्य भाषाओं के साथ भी काम कर सकते हैं।
Jupyter के साथ R का उपयोग शुरू करने के दो सामान्य तरीके हैं: एक कर्नेल का उपयोग करके या एक ऐसा R वातावरण सेट करके जिसमें डेटा साइंस शुरू करने के लिए सभी आवश्यक टूल मौजूद हों।
R कर्नेल के साथ Jupyter में R चलाना
जैसा कि ऊपर बताया गया है, R चलाने का पहला तरीका कर्नेल का उपयोग करना है। यदि आप Jupyter में उपलब्ध सभी कर्नेल्स की पूरी सूची देखना चाहते हैं, तो यहाँ जाएँ।
R के साथ काम करने के लिए, आपको IRKernel लोड करना होगा और उसे सक्रिय करना होगा ताकि आप नोटबुक वातावरण में R का उपयोग शुरू कर सकें।
सबसे पहले, आपको कुछ पैकेज इंस्टॉल करने होंगे। सुनिश्चित करें कि आप यह काम RStudio कंसोल में नहीं, बल्कि एक सामान्य R टर्मिनल में करें, अन्यथा आपको इस तरह की त्रुटि मिल सकती है:
Error inIRkernel::installspec():
Jupyter or IPython 3.0 has to be installed but could neither run “jupyter” nor “ipython”, “ipython2” or “ipython3”.(Note that “ipython2” is just IPython for Python 2, but still may be IPython 3.0)संचालित द्वारा
$ R> install.packages(c('repr','IRdisplay','evaluate','crayon','pbdZMQ','devtools','uuid','digest'))संचालित द्वारा
यह कमांड आपको आवश्यक पैकेजों को इंस्टॉल करने के लिए एक CRAN मिरर चुनने हेतु एक संख्या टाइप करने के लिए कहेगा। कोई संख्या दर्ज करें और इंस्टॉलेशन जारी रहेगा।
> devtools::install_github('IRkernel/IRkernel')संचालित द्वारा
इसके बाद, आपको अभी भी R कर्नेल को Jupyter के लिए दृश्यमान बनाना होगा:
# Install IRKernel for the current user
> IRkernel::installspec()
# Or install IRKernel system-wide
> IRkernel::installspec(user =FALSE)संचालित द्वारा
अब jupyter notebook के साथ नोटबुक एप्लिकेशन खोलें। जब आप एक नई नोटबुक बनाएँगे, तो कर्नेल्स की सूची में R दिखाई देगा।
Jupyter में R Essentials वातावरण का उपयोग
R के साथ जल्दी काम करने का दूसरा विकल्प है कि आप अपने वर्तमान वातावरण में R essentials इंस्टॉल करें:
इन "essentials" में dplyr, shiny, ggplot2, tidyr, caret, और nnet जैसे पैकेज शामिल हैं। यदि आप essentials को अपने वर्तमान वातावरण में इंस्टॉल नहीं करना चाहते, तो आप केवल R essentials के लिए नया वातावरण बनाने हेतु निम्न कमांड का उपयोग कर सकते हैं:
conda create -n my-r-env -c r r-essentialsसंचालित द्वारा
अब R के साथ काम शुरू करने के लिए नोटबुक एप्लिकेशन खोलें।
आप सोच सकते हैं कि यदि आप अपने डेटा साइंस प्रोजेक्ट को आगे बढ़ाने के लिए अतिरिक्त पैकेज इंस्टॉल करना चाहते हैं, तो क्या करना होगा। आखिरकार, ये पैकेज शुरू करने के लिए पर्याप्त हो सकते हैं, लेकिन आपको अन्य टूल्स की आवश्यकता पड़ सकती है।
तो, आप या तो उदाहरण के लिए यह कमांड चलाकर एक Conda R पैकेज बना सकते हैं:
conda skeleton cran ldavis conda build r-ldavis/संचालित द्वारा
या आप R के अंदर से ही install.packages() या devtools::install_github (GitHub से पैकेज इंस्टॉल करने के लिए) के माध्यम से पैकेज इंस्टॉल कर सकते हैं। आपको बस यह सुनिश्चित करना होगा कि नया पैकेज Jupyter द्वारा उपयोग की जाने वाली सही R लाइब्रेरी में जुड़ जाए:
install.packages("ldavis","/home/user/anaconda3/lib/R/library")संचालित द्वारा
यदि आप कर्नेल्स के बारे में या Docker वातावरण में R चलाने के बारे में अधिक जानना चाहते हैं, तो यह पृष्ठ देखें।
Jupyter में कुछ R Magic जोड़ना
नोटबुक्स के साथ काम करने का एक बड़ा लाभ यह है कि वे आपको एक इंटरैक्टिव वातावरण देते हैं। यह इंटरैक्टिविटी मुख्य रूप से "मैजिक कमांड्स" से आती है।
ये कमांड्स आपको Python से कमांड लाइन निर्देशों पर स्विच करने या किसी अन्य भाषा जैसे R, Julia, Scala, … में कोड लिखने की सुविधा देते हैं।
Python से R पर स्विच करने के लिए, आपको सबसे पहले निम्न पैकेज डाउनलोड करना होगा:
इसके बाद, आप R के साथ शुरुआत कर सकते हैं, या अपने डेटा विश्लेषण में %R मैजिक कमांड के साथ Python से R पर आसानी से स्विच कर सकते हैं।
आइए एक छोटे उदाहरण से देखें कि R मैजिक कैसे काम करता है:
# Hide warnings if there are any
import warnings
warnings.filterwarnings('ignore')
# Load in the r magic
%load_ext rpy2.ipython
# We need ggplot2
%Rrequire(ggplot2)
# Load in the pandas library
import pandas as pd
# Make a pandas DataFrame
df = pd.DataFrame({'Alphabet':['a','b','c','d','e','f','g','h','i'],'A':[4,3,5,2,1,7,7,5,9],'B':[0,4,3,6,7,10,11,9,13],'C':[1,2,3,1,2,3,1,2,3]})
# Take the name of input variable df and assign it to an R variable of the same name
%%R-i df
# Plot the DataFrame df
ggplot(data=df)+geom_point(aes(x=A, y=B, color=C))संचालित द्वारा
यदि आप Jupyter के बारे में अधिक विवरण चाहते हैं—नोटबुक कैसे सेट करें, एप्लिकेशन कहाँ से डाउनलोड करें, नोटबुक एप्लिकेशन को कैसे चलाएँ (Docker, pip install या Anaconda वितरण के साथ) या अन्य विवरण—तो हमारा Definitive Guide देखें।
R Notebook
हाल तक, Jupyter R उपयोगकर्ताओं के लिए, Apache Zeppelin या Beaker जैसी नोटबुक्स के साथ, एक लोकप्रिय समाधान प्रतीत होता था।
इसके अलावा, डेटा विश्लेषण के परिणामों की रिपोर्ट करने के अन्य विकल्प, जैसे R Markdown, Knitr या Sweave, R समुदाय में बेहद लोकप्रिय रहे हैं।
हालाँकि, RStudio द्वारा हाल ही में जारी किए गए R या R Markdown Notebook के साथ यह बदल सकता है।
आप देखते हैं: R Markdown Notebook का संदर्भ जटिल है, और यह समझने के लिए R में पुनरुत्पाद्य शोध के इतिहास पर नज़र डालना सार्थक है कि किसने इस नोटबुक के निर्माण और विकास को प्रेरित किया। अंततः, आप यह भी महसूस करेंगे कि यह नोटबुक अन्य से अलग है।
R और पुनरुत्पाद्य शोध का इतिहास
अपने व्याख्यान में, J.J Allaire पुष्टि करते हैं कि R में स्वयं पुनरुत्पाद्य शोध के प्रयास, टेक्स्ट, कोड और इनपुट को संयोजित करने के लिए Emacs के प्रयास, Pandoc, Markdown और knitr प्रोजेक्ट्स, और कम्प्यूटेशनल नोटबुक्स वर्षों से समानांतर में विकसित हो रहे हैं और एक-दूसरे को प्रभावित कर रहे हैं। वे पुष्टि करते हैं कि अंततः इन सभी कारकों ने R के लिए नोटबुक्स के निर्माण और विकास को जन्म दिया है।
पहले, कम्प्यूटेशनल नोटबुक्स का एक इतिहास रहा है: 80 के दशक के उत्तरार्ध से, जब Mathematica का फ्रंट एंड जारी किया गया, तब से कई प्रगति हुई हैं। 2001 में, Fernando Pérez ने IPython विकसित करना शुरू किया, लेकिन केवल 2011 में टीम ने IPython का 0.12 संस्करण जारी किया। SageMath प्रोजेक्ट 2004 में शुरू हुआ। उसके बाद, कई नोटबुक्स आईं। डेटा साइंस समुदाय के लिए सबसे उल्लेखनीय हैं Beaker (2013), Jupyter (2014) और Apache Zeppelin (2015)।
फिर, वे मार्कअप भाषाएँ और टेक्स्ट एडिटर्स भी हैं जिन्होंने RStudio के नोटबुक एप्लिकेशन के निर्माण को प्रभावित किया है, अर्थात Emacs, Markdown और Pandoc। Org-mode 2003 में जारी किया गया। यह मुक्त सॉफ़्टवेयर टेक्स्ट एडिटर Emacs में नोट्स, योजना और लेखन के लिए एक एडिटिंग और ऑर्गनाइज़िंग मोड है। छह साल बाद, Emacs org-R आया ताकि R उपयोगकर्ताओं के लिए समर्थन प्रदान किया जा सके। दूसरी ओर, Markdown 2004 में एक मार्कअप भाषा के रूप में जारी किया गया था जो आपको अपने साधारण पाठ को इस तरह फ़ॉर्मेट करने की अनुमति देता है कि उसे HTML या अन्य फ़ॉर्मैट्स में परिवर्तित किया जा सके। कुछ वर्षों आगे बढ़ें, और Pandoc जारी किया गया। यह एक लेखन टूल है और प्रकाशन वर्कफ़्लोज़ के लिए आधार है।
अंत में, शोध को पुनरुत्पाद्य और पारदर्शी बनाने के लिए R समुदाय के प्रयासों ने भी R के लिए एक नोटबुक के उदय में योगदान दिया है। 2002 में, Sweave पेश किया गया ताकि LaTeX दस्तावेज़ों के भीतर R कोड एम्बेड करके PDF फाइलें बनाई जा सकें। ये PDF फाइलें वर्णनात्मक भाग और विश्लेषण, ग्राफ़िक्स, कोड, और गणनाओं के परिणामों को जोड़ती थीं। दस साल बाद, knitr विकसित किया गया ताकि Sweave की लंबे समय से चली आ रही समस्याओं को हल किया जा सके और अन्य ऐड-ऑन पैकेजों में मौजूद विशेषताओं को एक ही पैकेज में संयोजित किया जा सके। यह R में डायनामिक रिपोर्ट जेनरेशन के लिए एक पारदर्शी इंजन है। Knitr किसी भी इनपुट भाषा और किसी भी आउटपुट मार्कअप भाषा की अनुमति देता है।
इसी 2012 में, R Markdown को Markdown के एक ऐसे संस्करण के रूप में बनाया गया जिसे R कोड चंक्स एम्बेड करने के लिए इस्तेमाल किया जा सकता है और जिसे knitr के साथ मिलाकर पुनरुत्पाद्य वेब-आधारित रिपोर्ट बनाई जा सकती हैं। बड़ा लाभ तब था और अब भी है कि LaTex का उपयोग करना अब आवश्यक नहीं है, जिसे सीखने और उपयोग करने में समय लगता है। R Markdown का सिंटैक्स सामान्य Markdown सिंटैक्स से बहुत मिलता-जुलता है, लेकिन इसमें कुछ बदलाव हैं, जैसे कि आप LaTex समीकरण शामिल कर सकते हैं।
R Markdown बनाम कम्प्यूटेशनल नोटबुक्स
R Markdown संभवतः R समुदाय में डेटा विश्लेषण पर रिपोर्ट करने के सबसे लोकप्रिय विकल्पों में से एक है। यह कोई आश्चर्य नहीं कि यह R Markdown Notebook का अभी भी एक मुख्य घटक है।
और ऐसी कुछ बातें हैं जो R Markdown और नोटबुक्स साझा करते हैं, जैसे पुनरुत्पाद्य वर्कफ़्लो प्रदान करना, कोड, आउटपुट और पाठ को एक ही दस्तावेज़ में बुनना, इंटरैक्टिव विजेट्स को सपोर्ट करना और कई फ़ॉर्मैट्स में आउटपुट देना। हालाँकि, उनके जोर अलग-अलग हैं: R Markdown पुनरुत्पाद्य बैच निष्पादन, सादा पाठ प्रतिनिधित्व, वर्शन कंट्रोल, प्रोडक्शन आउटपुट पर केंद्रित है और वही एडिटर और टूल्स प्रदान करता है जिन्हें आप R स्क्रिप्ट्स के लिए उपयोग करते हैं।
दूसरी ओर, पारंपरिक कम्प्यूटेशनल नोटबुक्स कोड के साथ इनलाइन आउटपुट पर, सत्रों के बीच आउटपुट कैशिंग पर, कोड और आउटपुट को एक ही फाइल में साझा करने पर जोर देती हैं। नोटबुक्स इंटरैक्टिव निष्पादन मॉडल पर जोर देती हैं। वे सादा पाठ प्रतिनिधित्व का उपयोग नहीं करतीं, बल्कि JSON जैसे संरचित डेटा प्रतिनिधित्व का उपयोग करती हैं।
यह सब RStudio के नोटबुक एप्लिकेशन के उद्देश्य की व्याख्या करता है: यह R Markdown के सभी लाभों को कम्प्यूटेशनल नोटबुक्स की अच्छी बातों के साथ जोड़ता है।
इसीलिए R Markdown, R Markdown Notebook का मुख्य घटक है: RStudio अपनी नोटबुक को इस तरह परिभाषित करता है: "एक R Markdown दस्तावेज़ जिसमें चंक्स को स्वतंत्र रूप से और इंटरैक्टिव रूप से निष्पादित किया जा सकता है, और आउटपुट इनपुट के ठीक नीचे तुरंत दिखाई देता है"।
R Notebooks के साथ कैसे काम करें
यदि आपने कभी Jupyter या किसी अन्य कम्प्यूटेशनल नोटबुक के साथ काम किया है, तो आप देखेंगे कि वर्कफ़्लो बहुत समान है। एक बात जो काफी अलग लग सकती है, वह यह है कि अब आप डिफ़ॉल्ट रूप से कोड सेल्स के साथ काम नहीं कर रहे हैं: आप बल्कि एक तरह के टेक्स्ट एडिटर में काम कर रहे हैं जिसमें आप अपने कोड चंक्स को R Markdown के साथ इंगित करते हैं।
R Markdown Notebook कैसे इंस्टॉल और उपयोग करें
नोटबुक का उपयोग करने की पहली शर्त है कि आपके पीसी पर RStudio का नवीनतम संस्करण उपलब्ध हो। चूँकि नोटबुक्स RStudio की एक नई सुविधा हैं, वे केवल RStudio के 1.0 या उच्चतर संस्करण में उपलब्ध हैं। इसलिए, यह देखना महत्वपूर्ण है कि आपके पास सही संस्करण इंस्टॉल है या नहीं।
यदि आपके पास RStudio का 1.0 या उच्चतर संस्करण नहीं है, तो आप नवीनतम संस्करण यहाँ डाउनलोड कर सकते हैं।
फिर, एक नई नोटबुक बनाने के लिए, File टैब पर जाएँ, "New File" चुनें, और आपको नई R Markdown Notebook बनाने का विकल्प दिखाई देगा। यदि RStudio आपको कुछ पैकेज अपडेट करने के लिए प्रेरित करता है, तो प्रस्ताव स्वीकार करें और अंततः एक नई फाइल दिखाई देगी।
टिप: अपने दस्तावेज़ के शीर्ष पर देखकर दोबारा जाँचें कि आप नोटबुक के साथ काम कर रहे हैं। आउटपुट html_notebook होना चाहिए।
आप देखेंगे कि दस्तावेज़ में दिखाई देने वाला डिफ़ॉल्ट पाठ R Markdown में है। R Markdown आपको काफी परिचित लगना चाहिए, लेकिन यदि आप अभी तक बहुत निपुण नहीं हैं, तो आप हमारा Reporting With R Markdown कोर्स देख सकते हैं या RStudio द्वारा उपलब्ध कराया गया सामग्री देख सकते हैं।
ध्यान दें कि आप हमेशा गियर आइकन का उपयोग करके नोटबुक के कार्यक्षेत्र को समायोजित कर सकते हैं: आपके पास अपने कोड के आउटपुट को विस्तृत, संक्षिप्त और हटाने, प्रीव्यू विकल्प बदलने और आउटपुट विकल्प संशोधित करने का विकल्प है।
यदि आप सिंटैक्स हाइलाइटिंग बदलना चाहते हैं, कोई और थीम लागू करना चाहते हैं, अपने आउटपुट में दिखाई देने वाले चित्रों की डिफ़ॉल्ट चौड़ाई और ऊँचाई समायोजित करना चाहते हैं, आदि, तो यह अंतिम विकल्प उपयोगी हो सकता है।
वहाँ से आगे, आप कोड चंक्स और टेक्स्ट डालना शुरू कर सकते हैं!
आप दो तरीकों से कोड चंक्स जोड़ सकते हैं: कीबोर्ड शॉर्टकट Ctrl + Alt + I या Cmd + Option + I से, या टूलबार में मौजूद Insert बटन से।
इन R Markdown नोटबुक्स के साथ काम करने की एक अच्छी बात यह है कि आप अपने कोड चंक्स के निष्पादन पर नज़र रख सकते हैं, बाएँ ओर दिखाई देने वाली छोटी हरी पट्टी के कारण, जब आप बड़े कोड चंक्स या एक साथ कई कोड चंक्स निष्पादित कर रहे होते हैं। साथ ही, नीचे एक प्रोग्रेस बार भी है, इस पर भी ध्यान दें।
आप नीचे दिए गए gif में हरी प्रोग्रेस बार को दिखाई देता हुआ देख सकते हैं:
कोड निष्पादन की बात करें तो: आपके R कोड चंक्स को निष्पादित करने के कई तरीके हैं।
आप किसी कोड चंक को चला सकते हैं या अगला चंक चला सकते हैं, नीचे और ऊपर के सभी कोड चंक्स चला सकते हैं; लेकिन आप R को पुनः आरंभ करके सभी चंक्स चलाने या पुनः आरंभ करके आउटपुट साफ़ करने का विकल्प भी चुन सकते हैं।
ध्यान दें कि जब आप नोटबुक के कोड को निष्पादित करते हैं, तो आउटपुट आपके कंसोल में भी दिखाई देगा! जो लोग आमतौर पर Jupyter जैसी अन्य कम्प्यूटेशनल नोटबुक्स के साथ काम करते हैं, उनके लिए यह एक बड़ा अंतर हो सकता है।
यदि नोटबुक के कोड चंक्स के निष्पादन के दौरान कोई त्रुटियाँ होती हैं, तो निष्पादन रुक जाएगा, और त्रुटि उत्पन्न करने वाले कोड भाग के साथ एक लाल पट्टी दिखाई देगी।
आप चंक विकल्पों में errors = TRUE जोड़कर निष्पादन के रुकने को दबा सकते हैं, इस तरह:
ध्यान दें कि त्रुटि फिर भी दिखाई देगी, लेकिन नोटबुक का कोड निष्पादन बाधित नहीं होगा!
R Markdown Notebook का "मैजिक" कैसे उपयोग करें
Jupyter की तरह, आप अपने R Markdown नोटबुक्स के साथ भी इंटरैक्टिव रूप से काम कर सकते हैं। यह Jupyter से थोड़ा अलग काम करता है, क्योंकि यहाँ वास्तविक मैजिक कमांड्स नहीं हैं; अन्य भाषाओं के साथ काम करने के लिए, आपको नोटबुक में अलग-अलग Bash, Stan, Python, SQL या Rcpp चंक्स जोड़ने की आवश्यकता होती है।
ये विकल्प आपको सीमित लग सकते हैं, लेकिन टूलबार के Insert बटन से इन प्रकार के कोड चंक्स बहुत आसानी से जोड़ने की सुविधा इसकी भरपाई करती है।
इन कोड चंक्स के साथ काम करना भी आसान है: आप J.J Allaire द्वारा प्रकाशित इस दस्तावेज़ में SQL चंक्स का एक उदाहरण देख सकते हैं। Bash कमांड्स के लिए, आप बस कमांड टाइप करें। Jupyter में काम करते समय जैसा कि आप करते हैं, यहाँ यह संकेत देने के लिए अतिरिक्त वर्ण जैसे ‘!’ जोड़ने की आवश्यकता नहीं है कि आप Bash में काम कर रहे हैं।
अपने R Markdown नोटबुक्स को कैसे आउटपुट करें
नोटबुक के अंतिम संस्करण को रेंडर करने से पहले, आप यह प्रीव्यू करना चाह सकते हैं कि आपने क्या किया है। इसके लिए एक उपयोगी सुविधा है: आपको यह टूलबार में मिलेगी।
"preview" बटन पर क्लिक करें और आपके दस्तावेज़ का अस्थायी संस्करण दाहिनी ओर, "Viewer" टैब में दिखाई देगा।
नोटबुक के शीर्ष पर पहले सेक्शन में कुछ पंक्तियाँ जोड़कर, आप अपने आउटपुट विकल्प समायोजित कर सकते हैं, इस तरह:
---title:"Notebook with KNN Example"output:pdf_document:highlight: tango
toc: yes
html_notebook:toc: yes
---संचालित द्वारा
यह देखने के लिए कि आप वे डिस्ट्रीब्यूशन्स कहाँ से प्राप्त कर सकते हैं, आप बस knit करने की कोशिश करें, और कंसोल आउटपुट आपको वे साइट्स देगा जहाँ से आप आवश्यक पैकेज डाउनलोड कर सकते हैं।
ध्यान दें कि यह नोटबुक एक्सपोर्ट करने के कई विकल्पों में से केवल एक है: GitHub दस्तावेज़, वर्ड दस्तावेज़, beamer प्रस्तुति आदि रेंडर करने की भी संभावना है। ये वे आउटपुट विकल्प हैं जो आपके पास नियमित R Markdown फाइलों के साथ पहले से थे। आप और जानकारी यहाँ पा सकते हैं।
R Notebook के साथ काम करने के टिप्स और ट्रिक्स
उन सामान्य कोडिंग प्रथाओं के अलावा जिन्हें आपको ध्यान में रखना चाहिए, जैसे अपने कोड का दस्तावेजीकरण करना और एक समान नामकरण योजना, कोड समूहबद्ध करना और नाम की लंबाई लागू करना, आप अन्य लोगों के उपयोग और पढ़ने के लिए किसी नोटबुक को बेहतर बनाने हेतु निम्न टिप्स का भी उपयोग कर सकते हैं:
कम्प्यूटेशनल नोटबुक्स की तरह ही, बड़े कोड चंक्स या ऐसे कोड चंक्स जो एक से अधिक आउटपुट उत्पन्न करते हैं, उन्हें कई चंक्स में बाँटना उपयोगी हो सकता है। इस तरह, आप सामान्य उपयोगकर्ता अनुभव में सुधार करेंगे और नोटबुक की पारदर्शिता बढ़ाएँगे।
अपने काम को तेज़ करने के लिए कीबोर्ड शॉर्टकट्स का उपयोग करें। आपको इनमें से अधिकांश टूलबार में उन कमांड्स के बगल में मिलेंगे जिन्हें आप करना चाहते हैं।
टूलबार में स्पेलचेक का उपयोग करें ताकि आपकी रिपोर्ट की शब्दावली सही हो।
यदि कोई नोटबुक कोड-हेवी है, तो अपने कोड को छिपाने के विकल्प का लाभ उठाएँ। आप यह कोड चंक विकल्पों के माध्यम से या स्वयं नोटबुक की HTML फाइल में कर सकते हैं!
R Notebook बनाम Jupyter Notebook
Jupyter और R Markdown नोटबुक्स के बीच ऊपर जिन अंतरों के बारे में आपने पढ़ा है, उनके अलावा कुछ और बातें भी हैं।
आइए Jupyter की तुलना R Markdown Notebook से करें!
चार पहलू हैं जिन्हें आप विचार करने में रुचिकर पाएँगे: नोटबुक शेयरिंग, कोड निष्पादन, वर्शन कंट्रोल, और प्रोजेक्ट मैनेजमेंट।
Notebook Sharing
R Markdown नोटबुक का सोर्स कोड एक .Rmd फाइल होता है। लेकिन जब आप कोई नोटबुक सेव करते हैं, तो उसके साथ एक .nb.html फाइल बन जाती है। यह HTML फाइल एक सम्बद्ध फाइल है जिसमें R Markdown सोर्स कोड और जनरेटेड आउटपुट की एक प्रति शामिल होती है।
इसका मतलब है कि फाइल देखने के लिए आपको किसी विशेष व्यूअर की आवश्यकता नहीं है, जबकि Jupyter एप्लिकेशन से बनाई गई नोटबुक्स, जो साधारण JSON दस्तावेज़ होती हैं, या अन्य कम्प्यूटेशनल नोटबुक्स जिनके आउटपुट संरचित फ़ॉर्मैट में होते हैं, उन्हें देखने के लिए ऐसा लग सकता है। आप अपनी R Markdown नोटबुक को किसी भी वेब सर्वर, GitHub पर या ईमेल अटैचमेंट के रूप में प्रकाशित कर सकते हैं।
R Markdown नोटबुक्स को रेंडर और पार्स करने के लिए APIs भी हैं: इससे अन्य फ्रंटएंड टूल्स को R Markdown के लिए नोटबुक ऑथरिंग मोड्स बनाने की क्षमता मिलती है। या APIs का उपयोग विभिन्न नोटबुक फ़ॉर्मैट्स के बीच कन्वर्ज़न यूटिलिटीज़ बनाने के लिए किया जा सकता है।
Jupyter एप्लिकेशन में बनाई गई नोटबुक्स को साझा करने के लिए, आप नोटबुक्स को स्लाइडशो, ब्लॉग, डैशबोर्ड आदि के रूप में एक्सपोर्ट कर सकते हैं। आप इस ट्यूटोरियल में अधिक जानकारी पा सकते हैं। हालाँकि, Python स्क्रिप्ट्स, HTML फाइल्स, Markdown फाइल्स, PDF फाइल्स या reStructured Text फाइल्स जनरेट करने के डिफ़ॉल्ट विकल्प भी मौजूद हैं।
Code Execution
R Markdown Notebooks में किसी कोड चंक को चलाने या अगले चंक को चलाने, नीचे और ऊपर के सभी कोड चंक्स चलाने के विकल्प होते हैं; इन विकल्पों के अलावा, आप R को पुनः आरंभ करके सभी चंक्स चलाने या पुनः आरंभ करके आउटपुट साफ़ करने का विकल्प भी चुन सकते हैं।
ये विकल्प तब रुचिकर होते हैं जब आप R के साथ काम कर रहे होते हैं क्योंकि R Markdown Notebook सभी R कोड भागों को एक ही वातावरण साझा करने की अनुमति देता है। हालाँकि, यदि आप non-R कोड भागों के साथ काम कर रहे हैं, तो यह एक बड़ा नुकसान साबित हो सकता है, क्योंकि ये वातावरण साझा नहीं करते।
कुल मिलाकर, ये कोड निष्पादन विकल्प उन उपयोगकर्ताओं के लिए काफी लचीलापन जोड़ते हैं जो Jupyter द्वारा पेश किए गए कोड निष्पादन विकल्पों से जूझ रहे थे, भले ही वे बहुत अलग न हों: Jupyter एप्लिकेशन में, आपके पास एकल सेल चलाने, सेल्स चलाने और सभी सेल्स चलाने के विकल्प होते हैं। आप वर्तमान या सभी आउटपुट साफ़ करने का विकल्प भी चुन सकते हैं। कोड वातावरण कोड सेल्स के बीच साझा होता है।
Version control
यह दावा किया गया है कि Jupyter नोटबुक्स के वर्शन कंट्रोल को बिगाड़ देता है या इन नोटबुक्स के साथ git का उपयोग करना कठिन है। इस समस्या के समाधान हैं नोटबुक को स्क्रिप्ट के रूप में एक्सपोर्ट करना, या एक फ़िल्टर सेट करना ताकि मेटाडेटा के उन भागों को ठीक किया जा सके जिन्हें कमिट करते समय नहीं बदलना चाहिए, या रन काउंट और आउटपुट को हटा देना।
R Markdown नोटबुक्स इस मुद्दे को संभालना थोड़ा आसान बनाती दिखती हैं, क्योंकि उनके पास सम्बद्ध HTML फाइलें होती हैं जो आपके कोड के आउटपुट को सेव करती हैं और यह तथ्य कि नोटबुक फाइलें मूलतः सादा पाठ फाइलें होती हैं, वर्शन कंट्रोल को बहुत आसान बना देगा। आप केवल अपनी .Rmd फाइल को GitHub या अन्य वर्शनिंग सिस्टम पर रखने का विकल्प चुन सकते हैं, या आप .nb.html फाइल को भी शामिल कर सकते हैं।
Project Management
चूँकि R Markdown Notebook, RStudio विकास किट के लिए नैटिव है, नोटबुक्स आपके R प्रोजेक्ट्स के साथ सहजता से एकीकृत होंगी। साथ ही, ये नोटबुक्स Python, C, और SQL सहित अन्य भाषाओं को भी सपोर्ट करती हैं।
दूसरी ओर, Jupyter प्रोजेक्ट किसी भी विकास किट के लिए नैटिव नहीं है: उस अर्थ में, इस नोटबुक को आपके प्रोजेक्ट्स के साथ सहज रूप से एकीकृत करने में कुछ प्रयास लगेगा। लेकिन यह नोटबुक अभी भी अधिक भाषाओं का समर्थन करती है और यदि आप Scala, Apache Toree, Julia, या किसी अन्य भाषा का उपयोग करना चाहते हैं, तो यह आपके लिए अधिक उपयुक्त साथी होगी।
Jupyter या R Markdown Notebooks के विकल्प
उन नोटबुक्स के अलावा जिन्हें आप इंटरैक्टिव डेटा साइंस वातावरण के रूप में उपयोग कर सकते हैं जो आपके लिए अपने सहकर्मियों, साथियों और मित्रों के साथ अपना कोड साझा करना आसान बनाती हैं, विचार करने के लिए अन्य विकल्प भी हैं।
क्योंकि कभी-कभी आपको नोटबुक की नहीं, बल्कि किसी डैशबोर्ड, इंटरैक्टिव लर्निंग प्लेटफॉर्म या किताब की, उदाहरण के लिए, आवश्यकता होती है।
आप दूसरे सेक्शन में Sweave और Knitr जैसे विकल्पों के बारे में पहले ही पढ़ चुके हैं। कुछ अन्य विकल्प जो उपलब्ध हैं, वे हैं:
हालाँकि इस ब्लॉग पोस्ट में R Markdown को कुछ हद तक कवर किया गया है, आपको पता होना चाहिए कि आप इसके साथ और भी बहुत कुछ कर सकते हैं। उदाहरण के लिए, आप flexdashboard के साथ डैशबोर्ड बना सकते हैं।
या आप Bookdown का उपयोग करके R Markdown के साथ HTML, PDF, ePub और Kindle किताबें जल्दी से प्रकाशित कर सकते हैं।
Shiny एक ऐसा टूल है जिसका उपयोग आप डैशबोर्ड बनाने के लिए भी कर सकते हैं। Shiny के साथ शुरुआत करने के लिए, इस पृष्ठ पर जाएँ।
शैक्षिक सेटिंग में, DataCamp Light आपके ब्लॉग या वेबसाइट पर इंटरैक्टिव ट्यूटोरियल बनाने में भी सहायक हो सकता है। यदि आप DataCamp Light को क्रिया में देखना चाहते हैं, तो उदाहरण के लिए यह ट्यूटोरियल देखें।
डेटा साइंस समस्याओं पर काम करते समय, आप एक इंटरैक्टिव वातावरण सेट करना चाह सकते हैं ताकि किसी प्रोजेक्ट का कोड लिखें और दूसरों के साथ साझा करें। आप इसे एक नोटबुक से आसानी से सेट कर सकते हैं।
अन्य मामलों में, आप केवल अपने डेटा साइंस समस्या के विश्लेषण के लिए अपनाए गए वर्कफ़्लो और प्राप्त परिणामों के बारे में संप्रेषित करना चाहेंगे। एक पारदर्शी और पुनरुत्पाद्य रिपोर्ट के लिए, नोटबुक भी उपयोगी साबित हो सकती है।
बिलकुल सही; नोटबुक्स उन स्थितियों के लिए उपयुक्त हैं जहाँ आप साधारण पाठ को समृद्ध तत्वों जैसे ग्राफ़िक्स, गणनाएँ आदि के साथ संयोजित करना चाहते हैं।
यह ट्यूटोरियल निम्नलिखित विषयों को कवर करेगा:
R और Jupyter Notebook
जो आप सोच सकते हैं, उसके विपरीत, Jupyter आपको केवल Python तक सीमित नहीं करता: यह नोटबुक एप्लिकेशन भाषा-निरपेक्ष है, जिसका अर्थ है कि आप अन्य भाषाओं के साथ भी काम कर सकते हैं।
Jupyter के साथ R का उपयोग शुरू करने के दो सामान्य तरीके हैं: एक कर्नेल का उपयोग करके या एक ऐसा R वातावरण सेट करके जिसमें डेटा साइंस शुरू करने के लिए सभी आवश्यक टूल मौजूद हों।
R कर्नेल के साथ Jupyter में R चलाना
जैसा कि ऊपर बताया गया है, R चलाने का पहला तरीका कर्नेल का उपयोग करना है। यदि आप Jupyter में उपलब्ध सभी कर्नेल्स की पूरी सूची देखना चाहते हैं, तो यहाँ जाएँ।
R के साथ काम करने के लिए, आपको IRKernel लोड करना होगा और उसे सक्रिय करना होगा ताकि आप नोटबुक वातावरण में R का उपयोग शुरू कर सकें।
सबसे पहले, आपको कुछ पैकेज इंस्टॉल करने होंगे। सुनिश्चित करें कि आप यह काम RStudio कंसोल में नहीं, बल्कि एक सामान्य R टर्मिनल में करें, अन्यथा आपको इस तरह की त्रुटि मिल सकती है:
यह कमांड आपको आवश्यक पैकेजों को इंस्टॉल करने के लिए एक CRAN मिरर चुनने हेतु एक संख्या टाइप करने के लिए कहेगा। कोई संख्या दर्ज करें और इंस्टॉलेशन जारी रहेगा।
इसके बाद, आपको अभी भी R कर्नेल को Jupyter के लिए दृश्यमान बनाना होगा:
अब
jupyter notebookके साथ नोटबुक एप्लिकेशन खोलें। जब आप एक नई नोटबुक बनाएँगे, तो कर्नेल्स की सूची में R दिखाई देगा।Jupyter में R Essentials वातावरण का उपयोग
R के साथ जल्दी काम करने का दूसरा विकल्प है कि आप अपने वर्तमान वातावरण में R essentials इंस्टॉल करें:
इन "essentials" में dplyr, shiny, ggplot2, tidyr, caret, और nnet जैसे पैकेज शामिल हैं। यदि आप essentials को अपने वर्तमान वातावरण में इंस्टॉल नहीं करना चाहते, तो आप केवल R essentials के लिए नया वातावरण बनाने हेतु निम्न कमांड का उपयोग कर सकते हैं:
अब R के साथ काम शुरू करने के लिए नोटबुक एप्लिकेशन खोलें।
आप सोच सकते हैं कि यदि आप अपने डेटा साइंस प्रोजेक्ट को आगे बढ़ाने के लिए अतिरिक्त पैकेज इंस्टॉल करना चाहते हैं, तो क्या करना होगा। आखिरकार, ये पैकेज शुरू करने के लिए पर्याप्त हो सकते हैं, लेकिन आपको अन्य टूल्स की आवश्यकता पड़ सकती है।
तो, आप या तो उदाहरण के लिए यह कमांड चलाकर एक Conda R पैकेज बना सकते हैं:
या आप R के अंदर से ही
install.packages()याdevtools::install_github(GitHub से पैकेज इंस्टॉल करने के लिए) के माध्यम से पैकेज इंस्टॉल कर सकते हैं। आपको बस यह सुनिश्चित करना होगा कि नया पैकेज Jupyter द्वारा उपयोग की जाने वाली सही R लाइब्रेरी में जुड़ जाए:यदि आप कर्नेल्स के बारे में या Docker वातावरण में R चलाने के बारे में अधिक जानना चाहते हैं, तो यह पृष्ठ देखें।
Jupyter में कुछ R Magic जोड़ना
नोटबुक्स के साथ काम करने का एक बड़ा लाभ यह है कि वे आपको एक इंटरैक्टिव वातावरण देते हैं। यह इंटरैक्टिविटी मुख्य रूप से "मैजिक कमांड्स" से आती है।
ये कमांड्स आपको Python से कमांड लाइन निर्देशों पर स्विच करने या किसी अन्य भाषा जैसे R, Julia, Scala, … में कोड लिखने की सुविधा देते हैं।
Python से R पर स्विच करने के लिए, आपको सबसे पहले निम्न पैकेज डाउनलोड करना होगा:
इसके बाद, आप R के साथ शुरुआत कर सकते हैं, या अपने डेटा विश्लेषण में
%Rमैजिक कमांड के साथ Python से R पर आसानी से स्विच कर सकते हैं।आइए एक छोटे उदाहरण से देखें कि R मैजिक कैसे काम करता है:
यदि आप Jupyter के बारे में अधिक विवरण चाहते हैं—नोटबुक कैसे सेट करें, एप्लिकेशन कहाँ से डाउनलोड करें, नोटबुक एप्लिकेशन को कैसे चलाएँ (Docker, pip install या Anaconda वितरण के साथ) या अन्य विवरण—तो हमारा Definitive Guide देखें।
R Notebook
हाल तक, Jupyter R उपयोगकर्ताओं के लिए, Apache Zeppelin या Beaker जैसी नोटबुक्स के साथ, एक लोकप्रिय समाधान प्रतीत होता था।
इसके अलावा, डेटा विश्लेषण के परिणामों की रिपोर्ट करने के अन्य विकल्प, जैसे R Markdown, Knitr या Sweave, R समुदाय में बेहद लोकप्रिय रहे हैं।
हालाँकि, RStudio द्वारा हाल ही में जारी किए गए R या R Markdown Notebook के साथ यह बदल सकता है।
आप देखते हैं: R Markdown Notebook का संदर्भ जटिल है, और यह समझने के लिए R में पुनरुत्पाद्य शोध के इतिहास पर नज़र डालना सार्थक है कि किसने इस नोटबुक के निर्माण और विकास को प्रेरित किया। अंततः, आप यह भी महसूस करेंगे कि यह नोटबुक अन्य से अलग है।
R और पुनरुत्पाद्य शोध का इतिहास
अपने व्याख्यान में, J.J Allaire पुष्टि करते हैं कि R में स्वयं पुनरुत्पाद्य शोध के प्रयास, टेक्स्ट, कोड और इनपुट को संयोजित करने के लिए Emacs के प्रयास, Pandoc, Markdown और knitr प्रोजेक्ट्स, और कम्प्यूटेशनल नोटबुक्स वर्षों से समानांतर में विकसित हो रहे हैं और एक-दूसरे को प्रभावित कर रहे हैं। वे पुष्टि करते हैं कि अंततः इन सभी कारकों ने R के लिए नोटबुक्स के निर्माण और विकास को जन्म दिया है।
पहले, कम्प्यूटेशनल नोटबुक्स का एक इतिहास रहा है: 80 के दशक के उत्तरार्ध से, जब Mathematica का फ्रंट एंड जारी किया गया, तब से कई प्रगति हुई हैं। 2001 में, Fernando Pérez ने IPython विकसित करना शुरू किया, लेकिन केवल 2011 में टीम ने IPython का 0.12 संस्करण जारी किया। SageMath प्रोजेक्ट 2004 में शुरू हुआ। उसके बाद, कई नोटबुक्स आईं। डेटा साइंस समुदाय के लिए सबसे उल्लेखनीय हैं Beaker (2013), Jupyter (2014) और Apache Zeppelin (2015)।
फिर, वे मार्कअप भाषाएँ और टेक्स्ट एडिटर्स भी हैं जिन्होंने RStudio के नोटबुक एप्लिकेशन के निर्माण को प्रभावित किया है, अर्थात Emacs, Markdown और Pandoc। Org-mode 2003 में जारी किया गया। यह मुक्त सॉफ़्टवेयर टेक्स्ट एडिटर Emacs में नोट्स, योजना और लेखन के लिए एक एडिटिंग और ऑर्गनाइज़िंग मोड है। छह साल बाद, Emacs org-R आया ताकि R उपयोगकर्ताओं के लिए समर्थन प्रदान किया जा सके। दूसरी ओर, Markdown 2004 में एक मार्कअप भाषा के रूप में जारी किया गया था जो आपको अपने साधारण पाठ को इस तरह फ़ॉर्मेट करने की अनुमति देता है कि उसे HTML या अन्य फ़ॉर्मैट्स में परिवर्तित किया जा सके। कुछ वर्षों आगे बढ़ें, और Pandoc जारी किया गया। यह एक लेखन टूल है और प्रकाशन वर्कफ़्लोज़ के लिए आधार है।
अंत में, शोध को पुनरुत्पाद्य और पारदर्शी बनाने के लिए R समुदाय के प्रयासों ने भी R के लिए एक नोटबुक के उदय में योगदान दिया है। 2002 में, Sweave पेश किया गया ताकि LaTeX दस्तावेज़ों के भीतर R कोड एम्बेड करके PDF फाइलें बनाई जा सकें। ये PDF फाइलें वर्णनात्मक भाग और विश्लेषण, ग्राफ़िक्स, कोड, और गणनाओं के परिणामों को जोड़ती थीं। दस साल बाद, knitr विकसित किया गया ताकि Sweave की लंबे समय से चली आ रही समस्याओं को हल किया जा सके और अन्य ऐड-ऑन पैकेजों में मौजूद विशेषताओं को एक ही पैकेज में संयोजित किया जा सके। यह R में डायनामिक रिपोर्ट जेनरेशन के लिए एक पारदर्शी इंजन है। Knitr किसी भी इनपुट भाषा और किसी भी आउटपुट मार्कअप भाषा की अनुमति देता है।
इसी 2012 में, R Markdown को Markdown के एक ऐसे संस्करण के रूप में बनाया गया जिसे R कोड चंक्स एम्बेड करने के लिए इस्तेमाल किया जा सकता है और जिसे knitr के साथ मिलाकर पुनरुत्पाद्य वेब-आधारित रिपोर्ट बनाई जा सकती हैं। बड़ा लाभ तब था और अब भी है कि LaTex का उपयोग करना अब आवश्यक नहीं है, जिसे सीखने और उपयोग करने में समय लगता है। R Markdown का सिंटैक्स सामान्य Markdown सिंटैक्स से बहुत मिलता-जुलता है, लेकिन इसमें कुछ बदलाव हैं, जैसे कि आप LaTex समीकरण शामिल कर सकते हैं।
R Markdown बनाम कम्प्यूटेशनल नोटबुक्स
R Markdown संभवतः R समुदाय में डेटा विश्लेषण पर रिपोर्ट करने के सबसे लोकप्रिय विकल्पों में से एक है। यह कोई आश्चर्य नहीं कि यह R Markdown Notebook का अभी भी एक मुख्य घटक है।
और ऐसी कुछ बातें हैं जो R Markdown और नोटबुक्स साझा करते हैं, जैसे पुनरुत्पाद्य वर्कफ़्लो प्रदान करना, कोड, आउटपुट और पाठ को एक ही दस्तावेज़ में बुनना, इंटरैक्टिव विजेट्स को सपोर्ट करना और कई फ़ॉर्मैट्स में आउटपुट देना। हालाँकि, उनके जोर अलग-अलग हैं: R Markdown पुनरुत्पाद्य बैच निष्पादन, सादा पाठ प्रतिनिधित्व, वर्शन कंट्रोल, प्रोडक्शन आउटपुट पर केंद्रित है और वही एडिटर और टूल्स प्रदान करता है जिन्हें आप R स्क्रिप्ट्स के लिए उपयोग करते हैं।
दूसरी ओर, पारंपरिक कम्प्यूटेशनल नोटबुक्स कोड के साथ इनलाइन आउटपुट पर, सत्रों के बीच आउटपुट कैशिंग पर, कोड और आउटपुट को एक ही फाइल में साझा करने पर जोर देती हैं। नोटबुक्स इंटरैक्टिव निष्पादन मॉडल पर जोर देती हैं। वे सादा पाठ प्रतिनिधित्व का उपयोग नहीं करतीं, बल्कि JSON जैसे संरचित डेटा प्रतिनिधित्व का उपयोग करती हैं।
यह सब RStudio के नोटबुक एप्लिकेशन के उद्देश्य की व्याख्या करता है: यह R Markdown के सभी लाभों को कम्प्यूटेशनल नोटबुक्स की अच्छी बातों के साथ जोड़ता है।
इसीलिए R Markdown, R Markdown Notebook का मुख्य घटक है: RStudio अपनी नोटबुक को इस तरह परिभाषित करता है: "एक R Markdown दस्तावेज़ जिसमें चंक्स को स्वतंत्र रूप से और इंटरैक्टिव रूप से निष्पादित किया जा सकता है, और आउटपुट इनपुट के ठीक नीचे तुरंत दिखाई देता है"।
R Notebooks के साथ कैसे काम करें
यदि आपने कभी Jupyter या किसी अन्य कम्प्यूटेशनल नोटबुक के साथ काम किया है, तो आप देखेंगे कि वर्कफ़्लो बहुत समान है। एक बात जो काफी अलग लग सकती है, वह यह है कि अब आप डिफ़ॉल्ट रूप से कोड सेल्स के साथ काम नहीं कर रहे हैं: आप बल्कि एक तरह के टेक्स्ट एडिटर में काम कर रहे हैं जिसमें आप अपने कोड चंक्स को R Markdown के साथ इंगित करते हैं।
R Markdown Notebook कैसे इंस्टॉल और उपयोग करें
नोटबुक का उपयोग करने की पहली शर्त है कि आपके पीसी पर RStudio का नवीनतम संस्करण उपलब्ध हो। चूँकि नोटबुक्स RStudio की एक नई सुविधा हैं, वे केवल RStudio के 1.0 या उच्चतर संस्करण में उपलब्ध हैं। इसलिए, यह देखना महत्वपूर्ण है कि आपके पास सही संस्करण इंस्टॉल है या नहीं।
यदि आपके पास RStudio का 1.0 या उच्चतर संस्करण नहीं है, तो आप नवीनतम संस्करण यहाँ डाउनलोड कर सकते हैं।
फिर, एक नई नोटबुक बनाने के लिए, File टैब पर जाएँ, "New File" चुनें, और आपको नई R Markdown Notebook बनाने का विकल्प दिखाई देगा। यदि RStudio आपको कुछ पैकेज अपडेट करने के लिए प्रेरित करता है, तो प्रस्ताव स्वीकार करें और अंततः एक नई फाइल दिखाई देगी।
टिप: अपने दस्तावेज़ के शीर्ष पर देखकर दोबारा जाँचें कि आप नोटबुक के साथ काम कर रहे हैं। आउटपुट html_notebook होना चाहिए।
आप देखेंगे कि दस्तावेज़ में दिखाई देने वाला डिफ़ॉल्ट पाठ R Markdown में है। R Markdown आपको काफी परिचित लगना चाहिए, लेकिन यदि आप अभी तक बहुत निपुण नहीं हैं, तो आप हमारा Reporting With R Markdown कोर्स देख सकते हैं या RStudio द्वारा उपलब्ध कराया गया सामग्री देख सकते हैं।
ध्यान दें कि आप हमेशा गियर आइकन का उपयोग करके नोटबुक के कार्यक्षेत्र को समायोजित कर सकते हैं: आपके पास अपने कोड के आउटपुट को विस्तृत, संक्षिप्त और हटाने, प्रीव्यू विकल्प बदलने और आउटपुट विकल्प संशोधित करने का विकल्प है।
यदि आप सिंटैक्स हाइलाइटिंग बदलना चाहते हैं, कोई और थीम लागू करना चाहते हैं, अपने आउटपुट में दिखाई देने वाले चित्रों की डिफ़ॉल्ट चौड़ाई और ऊँचाई समायोजित करना चाहते हैं, आदि, तो यह अंतिम विकल्प उपयोगी हो सकता है।
वहाँ से आगे, आप कोड चंक्स और टेक्स्ट डालना शुरू कर सकते हैं!
आप दो तरीकों से कोड चंक्स जोड़ सकते हैं: कीबोर्ड शॉर्टकट Ctrl + Alt + I या Cmd + Option + I से, या टूलबार में मौजूद Insert बटन से।
इन R Markdown नोटबुक्स के साथ काम करने की एक अच्छी बात यह है कि आप अपने कोड चंक्स के निष्पादन पर नज़र रख सकते हैं, बाएँ ओर दिखाई देने वाली छोटी हरी पट्टी के कारण, जब आप बड़े कोड चंक्स या एक साथ कई कोड चंक्स निष्पादित कर रहे होते हैं। साथ ही, नीचे एक प्रोग्रेस बार भी है, इस पर भी ध्यान दें।
आप नीचे दिए गए gif में हरी प्रोग्रेस बार को दिखाई देता हुआ देख सकते हैं:
कोड निष्पादन की बात करें तो: आपके R कोड चंक्स को निष्पादित करने के कई तरीके हैं।
आप किसी कोड चंक को चला सकते हैं या अगला चंक चला सकते हैं, नीचे और ऊपर के सभी कोड चंक्स चला सकते हैं; लेकिन आप R को पुनः आरंभ करके सभी चंक्स चलाने या पुनः आरंभ करके आउटपुट साफ़ करने का विकल्प भी चुन सकते हैं।
ध्यान दें कि जब आप नोटबुक के कोड को निष्पादित करते हैं, तो आउटपुट आपके कंसोल में भी दिखाई देगा! जो लोग आमतौर पर Jupyter जैसी अन्य कम्प्यूटेशनल नोटबुक्स के साथ काम करते हैं, उनके लिए यह एक बड़ा अंतर हो सकता है।
यदि नोटबुक के कोड चंक्स के निष्पादन के दौरान कोई त्रुटियाँ होती हैं, तो निष्पादन रुक जाएगा, और त्रुटि उत्पन्न करने वाले कोड भाग के साथ एक लाल पट्टी दिखाई देगी।
आप चंक विकल्पों में
errors = TRUEजोड़कर निष्पादन के रुकने को दबा सकते हैं, इस तरह:ध्यान दें कि त्रुटि फिर भी दिखाई देगी, लेकिन नोटबुक का कोड निष्पादन बाधित नहीं होगा!
R Markdown Notebook का "मैजिक" कैसे उपयोग करें
Jupyter की तरह, आप अपने R Markdown नोटबुक्स के साथ भी इंटरैक्टिव रूप से काम कर सकते हैं। यह Jupyter से थोड़ा अलग काम करता है, क्योंकि यहाँ वास्तविक मैजिक कमांड्स नहीं हैं; अन्य भाषाओं के साथ काम करने के लिए, आपको नोटबुक में अलग-अलग Bash, Stan, Python, SQL या Rcpp चंक्स जोड़ने की आवश्यकता होती है।
ये विकल्प आपको सीमित लग सकते हैं, लेकिन टूलबार के Insert बटन से इन प्रकार के कोड चंक्स बहुत आसानी से जोड़ने की सुविधा इसकी भरपाई करती है।
इन कोड चंक्स के साथ काम करना भी आसान है: आप J.J Allaire द्वारा प्रकाशित इस दस्तावेज़ में SQL चंक्स का एक उदाहरण देख सकते हैं। Bash कमांड्स के लिए, आप बस कमांड टाइप करें। Jupyter में काम करते समय जैसा कि आप करते हैं, यहाँ यह संकेत देने के लिए अतिरिक्त वर्ण जैसे ‘
!’ जोड़ने की आवश्यकता नहीं है कि आप Bash में काम कर रहे हैं।अपने R Markdown नोटबुक्स को कैसे आउटपुट करें
नोटबुक के अंतिम संस्करण को रेंडर करने से पहले, आप यह प्रीव्यू करना चाह सकते हैं कि आपने क्या किया है। इसके लिए एक उपयोगी सुविधा है: आपको यह टूलबार में मिलेगी।
"preview" बटन पर क्लिक करें और आपके दस्तावेज़ का अस्थायी संस्करण दाहिनी ओर, "Viewer" टैब में दिखाई देगा।
नोटबुक के शीर्ष पर पहले सेक्शन में कुछ पंक्तियाँ जोड़कर, आप अपने आउटपुट विकल्प समायोजित कर सकते हैं, इस तरह:
यह देखने के लिए कि आप वे डिस्ट्रीब्यूशन्स कहाँ से प्राप्त कर सकते हैं, आप बस knit करने की कोशिश करें, और कंसोल आउटपुट आपको वे साइट्स देगा जहाँ से आप आवश्यक पैकेज डाउनलोड कर सकते हैं।
ध्यान दें कि यह नोटबुक एक्सपोर्ट करने के कई विकल्पों में से केवल एक है: GitHub दस्तावेज़, वर्ड दस्तावेज़, beamer प्रस्तुति आदि रेंडर करने की भी संभावना है। ये वे आउटपुट विकल्प हैं जो आपके पास नियमित R Markdown फाइलों के साथ पहले से थे। आप और जानकारी यहाँ पा सकते हैं।
R Notebook के साथ काम करने के टिप्स और ट्रिक्स
उन सामान्य कोडिंग प्रथाओं के अलावा जिन्हें आपको ध्यान में रखना चाहिए, जैसे अपने कोड का दस्तावेजीकरण करना और एक समान नामकरण योजना, कोड समूहबद्ध करना और नाम की लंबाई लागू करना, आप अन्य लोगों के उपयोग और पढ़ने के लिए किसी नोटबुक को बेहतर बनाने हेतु निम्न टिप्स का भी उपयोग कर सकते हैं:
R Notebook बनाम Jupyter Notebook
Jupyter और R Markdown नोटबुक्स के बीच ऊपर जिन अंतरों के बारे में आपने पढ़ा है, उनके अलावा कुछ और बातें भी हैं।
आइए Jupyter की तुलना R Markdown Notebook से करें!
चार पहलू हैं जिन्हें आप विचार करने में रुचिकर पाएँगे: नोटबुक शेयरिंग, कोड निष्पादन, वर्शन कंट्रोल, और प्रोजेक्ट मैनेजमेंट।
Notebook Sharing
R Markdown नोटबुक का सोर्स कोड एक
.Rmdफाइल होता है। लेकिन जब आप कोई नोटबुक सेव करते हैं, तो उसके साथ एक.nb.htmlफाइल बन जाती है। यह HTML फाइल एक सम्बद्ध फाइल है जिसमें R Markdown सोर्स कोड और जनरेटेड आउटपुट की एक प्रति शामिल होती है।इसका मतलब है कि फाइल देखने के लिए आपको किसी विशेष व्यूअर की आवश्यकता नहीं है, जबकि Jupyter एप्लिकेशन से बनाई गई नोटबुक्स, जो साधारण JSON दस्तावेज़ होती हैं, या अन्य कम्प्यूटेशनल नोटबुक्स जिनके आउटपुट संरचित फ़ॉर्मैट में होते हैं, उन्हें देखने के लिए ऐसा लग सकता है। आप अपनी R Markdown नोटबुक को किसी भी वेब सर्वर, GitHub पर या ईमेल अटैचमेंट के रूप में प्रकाशित कर सकते हैं।
R Markdown नोटबुक्स को रेंडर और पार्स करने के लिए APIs भी हैं: इससे अन्य फ्रंटएंड टूल्स को R Markdown के लिए नोटबुक ऑथरिंग मोड्स बनाने की क्षमता मिलती है। या APIs का उपयोग विभिन्न नोटबुक फ़ॉर्मैट्स के बीच कन्वर्ज़न यूटिलिटीज़ बनाने के लिए किया जा सकता है।
Jupyter एप्लिकेशन में बनाई गई नोटबुक्स को साझा करने के लिए, आप नोटबुक्स को स्लाइडशो, ब्लॉग, डैशबोर्ड आदि के रूप में एक्सपोर्ट कर सकते हैं। आप इस ट्यूटोरियल में अधिक जानकारी पा सकते हैं। हालाँकि, Python स्क्रिप्ट्स, HTML फाइल्स, Markdown फाइल्स, PDF फाइल्स या reStructured Text फाइल्स जनरेट करने के डिफ़ॉल्ट विकल्प भी मौजूद हैं।
Code Execution
R Markdown Notebooks में किसी कोड चंक को चलाने या अगले चंक को चलाने, नीचे और ऊपर के सभी कोड चंक्स चलाने के विकल्प होते हैं; इन विकल्पों के अलावा, आप R को पुनः आरंभ करके सभी चंक्स चलाने या पुनः आरंभ करके आउटपुट साफ़ करने का विकल्प भी चुन सकते हैं।
ये विकल्प तब रुचिकर होते हैं जब आप R के साथ काम कर रहे होते हैं क्योंकि R Markdown Notebook सभी R कोड भागों को एक ही वातावरण साझा करने की अनुमति देता है। हालाँकि, यदि आप non-R कोड भागों के साथ काम कर रहे हैं, तो यह एक बड़ा नुकसान साबित हो सकता है, क्योंकि ये वातावरण साझा नहीं करते।
कुल मिलाकर, ये कोड निष्पादन विकल्प उन उपयोगकर्ताओं के लिए काफी लचीलापन जोड़ते हैं जो Jupyter द्वारा पेश किए गए कोड निष्पादन विकल्पों से जूझ रहे थे, भले ही वे बहुत अलग न हों: Jupyter एप्लिकेशन में, आपके पास एकल सेल चलाने, सेल्स चलाने और सभी सेल्स चलाने के विकल्प होते हैं। आप वर्तमान या सभी आउटपुट साफ़ करने का विकल्प भी चुन सकते हैं। कोड वातावरण कोड सेल्स के बीच साझा होता है।
Version control
यह दावा किया गया है कि Jupyter नोटबुक्स के वर्शन कंट्रोल को बिगाड़ देता है या इन नोटबुक्स के साथ git का उपयोग करना कठिन है। इस समस्या के समाधान हैं नोटबुक को स्क्रिप्ट के रूप में एक्सपोर्ट करना, या एक फ़िल्टर सेट करना ताकि मेटाडेटा के उन भागों को ठीक किया जा सके जिन्हें कमिट करते समय नहीं बदलना चाहिए, या रन काउंट और आउटपुट को हटा देना।
R Markdown नोटबुक्स इस मुद्दे को संभालना थोड़ा आसान बनाती दिखती हैं, क्योंकि उनके पास सम्बद्ध HTML फाइलें होती हैं जो आपके कोड के आउटपुट को सेव करती हैं और यह तथ्य कि नोटबुक फाइलें मूलतः सादा पाठ फाइलें होती हैं, वर्शन कंट्रोल को बहुत आसान बना देगा। आप केवल अपनी
.Rmdफाइल को GitHub या अन्य वर्शनिंग सिस्टम पर रखने का विकल्प चुन सकते हैं, या आप.nb.htmlफाइल को भी शामिल कर सकते हैं।Project Management
चूँकि R Markdown Notebook, RStudio विकास किट के लिए नैटिव है, नोटबुक्स आपके R प्रोजेक्ट्स के साथ सहजता से एकीकृत होंगी। साथ ही, ये नोटबुक्स Python, C, और SQL सहित अन्य भाषाओं को भी सपोर्ट करती हैं।
दूसरी ओर, Jupyter प्रोजेक्ट किसी भी विकास किट के लिए नैटिव नहीं है: उस अर्थ में, इस नोटबुक को आपके प्रोजेक्ट्स के साथ सहज रूप से एकीकृत करने में कुछ प्रयास लगेगा। लेकिन यह नोटबुक अभी भी अधिक भाषाओं का समर्थन करती है और यदि आप Scala, Apache Toree, Julia, या किसी अन्य भाषा का उपयोग करना चाहते हैं, तो यह आपके लिए अधिक उपयुक्त साथी होगी।
Jupyter या R Markdown Notebooks के विकल्प
उन नोटबुक्स के अलावा जिन्हें आप इंटरैक्टिव डेटा साइंस वातावरण के रूप में उपयोग कर सकते हैं जो आपके लिए अपने सहकर्मियों, साथियों और मित्रों के साथ अपना कोड साझा करना आसान बनाती हैं, विचार करने के लिए अन्य विकल्प भी हैं।
क्योंकि कभी-कभी आपको नोटबुक की नहीं, बल्कि किसी डैशबोर्ड, इंटरैक्टिव लर्निंग प्लेटफॉर्म या किताब की, उदाहरण के लिए, आवश्यकता होती है।
आप दूसरे सेक्शन में Sweave और Knitr जैसे विकल्पों के बारे में पहले ही पढ़ चुके हैं। कुछ अन्य विकल्प जो उपलब्ध हैं, वे हैं: