Last chance! 50% off DataCamp Premium
Sale ends in
यह लेख डेटा साइंस का एक बेहद अहम और उपयोगी पैकेज—R Markdown—पर केंद्रित है, जिसके बारे में हर R उपयोगकर्ता को पता होना चाहिए। हम जानेंगे कि R Markdown क्या है, इसके क्या लाभ हैं, इसका उपयोग किस लिए किया जाता है, इसे कैसे इंस्टॉल करें, कोड, नैरेटिव और डेटा प्लॉट्स के साथ काम करने के लिए यह क्या-क्या क्षमताएँ देता है, इसका सिंटैक्स क्या है, R Markdown दस्तावेज़ों के आउटपुट फॉर्मैट्स कौन-कौन से हैं, और ऐसे दस्तावेज़ों को कैसे रेंडर करें और अपने सहयोगियों के साथ कैसे साझा करें।
क्योंकि R Markdown विशेष रूप से RStudio इंटीग्रेटेड डेवलपमेंट एनवायरनमेंट (IDE) के लिए अनुकूलित है, हम पूरे लेख में इसी IDE का उपयोग करेंगे। RStudio ट्यूटोरियल RStudio को इंस्टॉल करने और शुरू करने के लिए आवश्यक मार्गदर्शन देता है।
चलिए शुरू करते हैं!
R Markdown एक निःशुल्क और ओपन-सोर्स R पैकेज है जो डेटा साइंस प्रोजेक्ट्स बनाने के लिए एक वर्कस्पेस उपलब्ध कराता है। R Markdown का मुख्य लाभ यह है कि यह आपको कोड, टेक्स्ट और डेटा विज़ुअलाइज़ेशन को एक ही सुसज्जित, साझा करने योग्य, पूरी तरह पुनरुत्पाद्य दस्तावेज़ में संयोजित करने की सुविधा देता है, जिसे विभिन्न प्रकार के आउटपुट फॉर्मैट्स—स्थिर और इंटरैक्टिव, दोनों—में रेंडर किया जा सकता है।
इसके कुछ लोकप्रिय आउटपुट फॉर्मैट्स हैं HTML, PDF, Microsoft Word, प्रस्तुतियाँ, एप्लिकेशन, वेबसाइटें, डैशबोर्ड, रिपोर्ट, टेम्प्लेट, लेख, पुस्तकें, इत्यादि।
इसके अलावा, R Markdown में वर्शन कंट्रोल ट्रैकिंग आसान है और यह R के अलावा कई अन्य प्रोग्रामिंग भाषाओं को भी सपोर्ट करता है, जैसे Python और SQL।
यदि आप R Markdown के साथ डायनेमिक रिपोर्ट लिखने में गहराई से सीखना चाहते हैं, तो Reporting with R Markdown कोर्स एक बेहतरीन शुरुआती बिंदु है।
RStudio के बाहर R Markdown का उपयोग करते समय, हम इसे CRAN (Comprehensive R Archive Network) रिपोजिटरी से किसी भी अन्य R पैकेज की तरह ही इंस्टॉल करते हैं:
install.packages("rmarkdown")
इंस्टॉलेशन के बाद, हमें वर्किंग R एनवायरनमेंट में पैकेज लोड करना होता है:
library(rmarkdown)
इसके विपरीत, जब हम RStudio के भीतर R Markdown के साथ काम करते हैं—जैसा कि हम इस ट्यूटोरियल में करेंगे—तो हमें rmarkdown पैकेज को स्पष्ट रूप से इंस्टॉल और लोड करने की ज़रूरत नहीं होती। RStudio के मेन्यू बार में File—New File—R Markdown पर क्लिक करने से एक नया R Markdown दस्तावेज़ खुल जाएगा। इस चरण पर, हमें Install Required Packages का नोटिफिकेशन मिल सकता है, जैसा कि नीचे दिखाया गया है:

आवश्यक पैकेज इंस्टॉलेशन की पुष्टि करने के बाद, नए पॉप-अप विंडो में दस्तावेज़ का शीर्षक और लेखक का नाम (दोनों वैकल्पिक लेकिन अनुशंसित) दें, अन्य सेटिंग्स जैसी हैं वैसी ही छोड़ें, और OK दबाएँ:

पिछले सेक्शन में, हमने RStudio में एक नया R Markdown दस्तावेज़ खोला। यह इस प्रकार दिखता है:

हम देखते हैं कि इसमें वह शीर्षक, लेखक का नाम, वर्तमान तिथि, और डिफ़ॉल्ट आउटपुट फॉर्मैट शामिल है, जो हमने इसे खोलते समय पॉप-अप विंडो में दिया था। इसके बाद, इसमें R Markdown द्वारा उपयोग किए जाने वाले बेसिक सिंटैक्स के कुछ उदाहरण हैं, जैसे कोड चंक्स जोड़ना और फ़ॉर्मैट करना, हेडर जोड़ना, लिंक डालना, टेक्स्ट पर ज़ोर देना, और प्लॉट्स बनाना।
हम R Markdown की विभिन्न कार्यात्मकताओं और उनके सिंटैक्स को और बारीकी से देखेंगे। अभी के लिए, इस डिफ़ॉल्ट फ़ाइल को सेव करें और फिर इसे चुने गए आउटपुट फॉर्मैट (हमारे मामले में—HTML) में रेंडर करें, ताकि देख सकें यह कैसा दिखता है।
फ़ाइल को सेव करने के लिए, RStudio के मेन्यू बार में File—Save As... पर क्लिक करें।
ध्यान दें: पहले दिया गया R Markdown दस्तावेज़ का नाम फ़ाइल नाम के समान नहीं होता। हमें फ़ाइल को प्रोजेक्ट डायरेक्टरी में सेव करना होता है और फिर उस पर काम करते समय समय-समय पर उसे सेव करते रहना चाहिए (File—Save)।
सेव की गई फ़ाइल को चुने गए आउटपुट फॉर्मैट (HTML) में रेंडर करने के लिए, फ़ाइल के टूलबार में Knit दबाएँ:

HTML फॉर्मैट में हमारा डिफ़ॉल्ट R Markdown दस्तावेज़ इस प्रकार दिखता है:

अक्सर, किसी डेटा साइंस प्रोजेक्ट का बड़ा हिस्सा टेक्स्ट होता है। इसलिए, यह जानना महत्वपूर्ण है कि R Markdown में इसे कैसे फ़ॉर्मैट किया जाए ताकि पाठनीयता आसान हो, सामग्री प्रभावी हो और आकर्षक भी लगे।
यदि आप डेटा विश्लेषण और डेटा साइंस के लिए R का उपयोग करना सीखना चाहते हैं और अपनी R प्रोग्रामिंग तथा डेटा साइंस स्किल्स को बढ़ाना चाहते हैं, तो ये शुरुआती-अनुकूल और व्यापक करियर ट्रैक्स देखें:
हम अपने R Markdown दस्तावेज़ में हैश सिंबल (#) का उपयोग करके विभिन्न स्तरों के हेडर जोड़ सकते हैं। सिंटैक्स इस प्रकार है:
# हेडर 1 (मुख्य शीर्षक)
## हेडर 2 (सेक्शन)
### हेडर 3 (सबसेक्शन)
आदि।
रेंडर होने पर, ऊपर दिए गए हेडर इस प्रकार दिखेंगे:

R Markdown टेक्स्ट में अलग-अलग तरह का ज़ोर जोड़ने की सुविधा देता है, जैसे उसे इटैलिक, बोल्ड, स्ट्राइकथ्रू, सुपरसक्रिप्ट या सबस्क्रिप्ट बनाना, इस प्रकार:
नीचे रेंडर हुई स्थिति में ये रूप दिखाए गए हैं:

अनऑर्डर्ड लिस्ट बनाने के लिए, हम निम्न तीन में से किसी भी सिंटैक्स का उपयोग करते हैं:
* Item 1* Item 2* Item 3
या:
- Item 1- Item 2- Item 3
या:
+ Item 1+ Item 2+ Item 3
सभी ही मामलों में, रेंडर हुआ परिणाम समान होगा:

ऑर्डर्ड लिस्ट बनाने के लिए, हम यह सिंटैक्स उपयोग करते हैं:
1. Item 12. Item 23. Item 3
रेंडर हुआ परिणाम लगभग वैसा ही दिखेगा, प्रत्येक संख्या से पहले इंडेंटेशन के साथ।
ध्यान दें कि यदि हम ऑर्डर्ड लिस्ट से कोई आइटम हटा देते हैं, उसमें नया आइटम जोड़ते हैं, या किसी संख्या में गलती कर देते हैं (जैसे ऊपर के उदाहरण में 2. के स्थान पर 20. लिख दें), तो संख्याएँ स्वतः ठीक हो जाएँगी और इच्छित क्रम में दिखाई देंगी:

ब्लॉक कोट के लिए, उद्धृत टेक्स्ट के प्रथम अक्षर से पहले > सिंबल लगाते हैं:
> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellentesque. Nunc posuere purus rhoncus pulvinar aliquam. Ut aliquet tristique nisl vitae volutpat. Nulla aliquet porttitor venenatis. Donec a dui et dui fringilla consectetur id nec massa. Aliquam erat volutpat. Sed ut dui ut lacus dictum fermentum vel tincidunt neque.
यह इस प्रकार रेंडर होगा:

उद्धृत ब्लॉक के बाद उससे बाहर आने के लिए एक खाली लाइन जोड़ें।n unordered list of 3 items
यदि हम किसी लिंक को सीधे पाथ के रूप में शामिल करना चाहते हैं, तो लिंक पाथ को < और > सिंबल्स के बीच रखते हैं। उदाहरण के लिए, निम्न संरचना:
इस प्रकार रेंडर होगी:
इसके बजाय, किसी शब्द या छोटे टेक्स्ट के साथ लिंक एंकर करने के लिए, हमें निम्न सिंटैक्स उपयोग करना चाहिए (उदाहरण के लिए Google वेबसाइट):
[Google](https://www.google.com/)
यह इस प्रकार रेंडर होगा:
अपनी नैरेटिव में कोई छवि डालने के लिए, हम निम्न में से किसी एक तरीके का उपयोग करते हैं:



Alt टेक्स्ट चित्र में क्या है, इसका संक्षिप्त विवरण देता है और तब काम आता है जब किसी कारणवश उपयोगकर्ता पेज पर छवि नहीं देख पाता।
आइए Pixabay की एक तस्वीर के लिए पहले तरीके को देखें, जिसकी इमेज URL है https://cdn.pixabay.com/photo/2018/12/02/10/07/web-3850917_1280.jpg:

दस्तावेज़ रेंडर करने पर तस्वीर दिखाई देगी:

R Markdown में विभिन्न प्रकार के ब्रेक्स होते हैं:
आइए पहले तीन प्रकार के ब्रेक्स को क्रिया में देखें। नीचे Lorem ipsum टेक्स्ट का एक अंश है जिसमें कुछ R Markdown ब्रेक फ़ॉर्मैटिंग सिंबल जोड़े गए हैं:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.\Nam hendrerit nisi sed sollicitudin pellentesque.
Nunc posuere purus rhoncus pulvinar aliquam.
***
Ut aliquet tristique nisl vitae volutpat.
HTML दस्तावेज़ में यह इस प्रकार रेंडर होगा:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.Nam hendrerit nisi sed sollicitudin pellentesque.
Nunc posuere purus rhoncus pulvinar aliquam.
Ut aliquet tristique nisl vitae volutpat.
कोड किसी भी डेटा साइंस प्रोजेक्ट का एक और आवश्यक घटक है। R Markdown में, हम कोड चला सकते हैं (और केवल R ही नहीं), कोड और उसका आउटपुट दोनों दिखा सकते हैं, केवल कोड दिखाकर आउटपुट छिपा सकते हैं, केवल आउटपुट दिखाकर स्रोत कोड छिपा सकते हैं, आदि।
शुरुआती-अनुकूल करियर ट्रैक R Programmer और स्किल ट्रैक R Programming आपकी R कोडिंग स्किल्स सीखने, अभ्यास करने और निखारने में मदद करेंगे।
R Markdown में R कोड के किसी ब्लॉक को फ़ॉर्मैट और चलाने के लिए, हम उसे ट्रिपल बैकटिक की जोड़ी में रखते हैं, जिसमें पहली ट्रिपल बैकटिक के बाद कर्ली ब्रेसेज़ में r लिखा होता है। उदाहरण के लिए:
```{r}
print("Hello, World!")
```
यदि हम कोड चलाए बिना दस्तावेज़ रेंडर करते हैं, तो हमारा कोड chunk नीचे की तरह दिखाई देगा:

R Markdown के साथ काम करते समय, हम केवल R तक सीमित नहीं हैं, क्योंकि यह पैकेज कई अन्य प्रोग्रामिंग भाषाओं को भी सपोर्ट करता है। किसी अन्य भाषा में कोड चलाने के लिए, हम कर्ली ब्रेसेज़ में R के स्थान पर उस भाषा का नाम लिखते हैं। इसके अलावा, हमें वर्किंग R एनवायरनमेंट में कुछ अतिरिक्त पैकेज इंस्टॉल और लोड करने की आवश्यकता हो सकती है।
उदाहरण के लिए, R Markdown में Python का उपयोग करने के लिए, हमें reticulate पैकेज इंस्टॉल और लोड करना होता है, जो एक ही R Markdown दस्तावेज़ में Python और R के बीच दो-तरफ़ा संचार (जैसे वेरिएबल बनाना और एक्सेस करना) की अनुमति देता है।
आइए पिछली धारा के कोड को Python में लिखें (reticulate पैकेज इंस्टॉल और लोड करने के बाद):
```{python}
print("Hello, World!")
```

RStudio के भीतर R Markdown के साथ काम करते समय किसी कोड chunk या उसके चयनित लाइनों को चलाने के लिए, हम दस्तावेज़ के टूलबार पर Run बटन पर क्लिक करते हैं और ड्रॉप-डाउन सूची से आवश्यक विकल्प चुनते हैं:

ऊपर की तस्वीर में, हम देखते हैं कि प्रत्येक रन विकल्प का अपना शॉर्टकट है, जिसका उपयोग हम हर बार ड्रॉप-डाउन खोलने के बजाय कर सकते हैं।
भले ही अनिवार्य न हो, कोड chunks को नाम देना एक अच्छा अभ्यास है। यह कई स्थितियों में उपयोगी होता है: दस्तावेज़ भर में कोड chunks को संदर्भित करना, कोड डिबगिंग, chunks के बीच स्विच करना, आदि। यदि हम किसी लंबे दस्तावेज़ पर काम कर रहे हैं जिसमें बहुत से कोड chunks हैं, तो नामकरण विशेष रूप से महत्वपूर्ण हो जाता है।
हम भाषा के नाम के तुरंत बाद, कर्ली ब्रेसेज़ में chunk का नाम जोड़ते हैं, और उसे व्हाइट स्पेस से अलग करते हैं। chunk के नाम में व्हाइट स्पेस नहीं होना चाहिए।
नीचे के उदाहरण में, हमने chunk का नाम hello_world रखा है:
```{r hello_world}
print("Hello, World!")
```
कोड chunk विकल्प हमें कोड के मूल्यांकन, आउटपुट, सजावट, कैश, एनीमेशन (यदि लागू हो) और प्लॉट्स (यदि लागू हो)—इन सभी पर, प्रत्येक व्यक्तिगत chunk के स्तर पर नियंत्रण देते हैं। हम एक ही chunk में कई विकल्प जोड़ सकते हैं। सिंटैक्स की दृष्टि से, हम विकल्पों को कर्ली ब्रेसेज़ में chunk के नाम (यदि उपलब्ध; अन्यथा भाषा के नाम) के ठीक बाद लिखते हैं, और उन्हें कॉमा से अलग करते हैं।
R Markdown में बहुत से chunk विकल्प उपलब्ध हैं। प्रत्येक का एक डिफ़ॉल्ट मान होता है, लेकिन जब हम उनका उपयोग करते हैं, तो प्रायः हमें डिफ़ॉल्ट से अलग मान चाहिए होता है। आइए कुछ लोकप्रिय chunk विकल्पों और उनके मानों पर नज़र डालें, जो हमारे लिए उपयोगी हो सकते हैं:
echo=FALSE—अंतिम दस्तावेज़ में कोड स्वयं नहीं दिखेगा, केवल उसका आउटपुट दिखेगा।eval=FALSE—chunk के भीतर का कोड चलाया नहीं जाएगा।include=FALSE—chunk चलाया जाएगा लेकिन अंतिम दस्तावेज़ में शामिल नहीं होगा।results—डिफ़ॉल्ट मान "markup" है; अन्य मान:message=FALSE—कोड द्वारा उत्पन्न संदेश नहीं दिखेंगे।error=FALSE—कोड द्वारा उत्पन्न त्रुटियाँ नहीं दिखेंगी।warning=FALSE—कोड द्वारा उत्पन्न चेतावनियाँ नहीं दिखेंगी।highlight=FALSE—अंतिम दस्तावेज़ में कोड हाइलाइट नहीं होगा।prompt=TRUE—अंतिम दस्तावेज़ में दिखाई देने वाली प्रत्येक कोड लाइन की शुरुआत में > सिंबल जोड़ा जाएगा।नीचे कुछ उदाहरण दिए गए हैं जिनमें कोड chunks को पहले RStudio में R Markdown में चलाया गया और फिर अंतिम दस्तावेज़ में रेंडर किया गया:
R Markdown में कोड:

अंतिम दस्तावेज़ में आउटपुट:

इनलाइन कोड के साथ, हम सीधे अपने R Markdown दस्तावेज़ के टेक्स्ट में छोटे-छोटे कोड अंश जोड़ सकते हैं—वे चलेंगे, और उनका आउटपुट टेक्स्ट में एम्बेड होकर दिखेगा। इनलाइन कोड का सिंटैक्स है r <code>।
नीचे इनलाइन कोड सहित टेक्स्ट का एक सरल उदाहरण है:
There are `r 1+6` colors of the rainbow.
और अंतिम दस्तावेज़ में यह इस प्रकार रेंडर होता है:
There are 7 colors of the rainbow.
व्यवहार में, इनलाइन कोड डेटा के बारे में जानकारी एकत्र करने के लिए उपयोग होता है और उन त्रुटियों से बचने में मदद करता है जो संख्याएँ मैन्युअल रूप से डालने पर या डेटा बदलने पर आसानी से हो सकती हैं।
R Markdown में प्लॉटिंग का अर्थ ऐसे कोड चलाना है जो प्लॉट्स बनाता है। अतः, कोड फ़ॉर्मैटिंग और निष्पादन के बारे में अब तक जो भी चर्चा हुई है, वह—इनलाइन कोड को छोड़कर—प्लॉटिंग पर भी लागू होती है। मुख्य अंतर यह है कि ऐसे कोड का आउटपुट केवल टेक्स्ट और संख्याएँ न होकर ग्राफ़िक्स होगा।
स्किल ट्रैक Data Visualization with R आपको R में डेटा का विश्लेषण और प्लॉट करना सिखाएगा, ताकि आप बेहतर डेटा-आधारित कहानियाँ सुना सकें।
R Markdown में प्लॉट्स को कस्टमाइज़ करने के लिए, जैसे कि सामान्य R में करते हैं, हम R डेटा विज़ुअलाइज़ेशन पैकेजों के टूल्स और बेस R के plot() फ़ंक्शन का उपयोग करते हैं।
हालाँकि, R Markdown दस्तावेज़ में प्लॉटिंग के व्यवहार को नियंत्रित करने के लिए, हम ऐसे chunk विकल्पों का उपयोग कर सकते हैं जो केवल प्लॉटिंग से संबंधित हैं। इनमें से अधिकांश काफी विशिष्ट हैं और इसलिए इस "शुरुआती" ट्यूटोरियल के दायरे से बाहर हैं। अतः, आइए कुछ बुनियादी chunk विकल्प देखें जो R Markdown में प्लॉटिंग करते समय सहायक हो सकते हैं:
fig.show—डिफ़ॉल्ट मान "asis" है; अन्य मान हैं:fig.width—प्लॉट की चौड़ाई (इंच में), डिफ़ॉल्ट 7।fig.height—प्लॉट की ऊँचाई (इंच में), डिफ़ॉल्ट 7।fig.align—अंतिम दस्तावेज़ में प्लॉट्स का एलाइनमेंट: "left", "center", या "right"।fig.cap—किसी फ़िगर का कैप्शन, एक करैक्टर स्ट्रिंग के रूप में।fig.path—वह पाथ जहाँ इस chunk द्वारा बनाए गए प्लॉट फ़ाइलें स्टोर होनी चाहिए।fig.ext—इस chunk द्वारा बनाई गई प्लॉट फ़ाइलों का एक्सटेंशन।नीचे R Markdown में प्लॉटिंग-विशिष्ट कोड chunks के कुछ उदाहरण दिए गए हैं, जिनमें स्रोत कोड और रेंडर हुआ आउटपुट शामिल है:
R Markdown में कोड:

अंतिम दस्तावेज़ में आउटपुट:

अब तक, हमने अंतिम दस्तावेज़ के आउटपुट फॉर्मैट के रूप में केवल HTML दस्तावेज़ (html_document) पर विचार किया है। हालाँकि, R Markdown कई अन्य आउटपुट फॉर्मैट्स भी प्रदान करता है, जैसे Microsoft Word, Microsoft PowerPoint, PDF, इंटरैक्टिव R नोटबुक्स, डैशबोर्ड, इत्यादि।
उदाहरण के लिए, दस्तावेज़ बनाने के लिए R Markdown में उपलब्ध आउटपुट फॉर्मैट्स हैं html_document, pdf_document, word_document, github_document, html_notebook, html_vignette, आदि। वहीं, प्रस्तुतियाँ बनाने के लिए हम इन आउटपुट फॉर्मैट्स का उपयोग कर सकते हैं: powerpoint_presentation, ioslides_presentation, slidy_presentation, और beamer_presentation।
अपने R Markdown दस्तावेज़ के लिए आउटपुट फॉर्मैट सेट करने के लिए, हम दस्तावेज़ हेडर (जिसे YAML हेडर भी कहा जाता है, जहाँ YAML का अर्थ है yet another markup language) में output सेटिंग को उपयुक्त मान देते हैं। उदाहरण के लिए, हमारे कार्यरत R Markdown दस्तावेज़ के लिए आउटपुट फॉर्मैट html_document सेट है, जो R Markdown में डिफ़ॉल्ट आउटपुट फॉर्मैट भी है:

इसे बदलने के लिए, हम html_document को आवश्यक आउटपुट फॉर्मैट (pdf_document, word_document, powerpoint_presentation, आदि) से प्रतिस्थापित करते हैं। अब, जब हम फ़ाइल के टूलबार में Knit दबाएँगे, तो हमारा दस्तावेज़ चुने हुए आउटपुट फॉर्मैट में रेंडर हो जाएगा।
R Markdown दस्तावेज़ प्रकाशित करने के लिए, RStudio के मेन्यू बार में File—Publish पर क्लिक करें और चुनें कि आप इसे कहाँ प्रकाशित करना चाहते हैं:

फिर हम अपने चुने हुए विकल्प के अनुसार आगे दिए गए निर्देशों का पालन करते हैं और Publish दबाते हैं। अब, हमारा दस्तावेज़ अपने सहयोगियों के साथ साझा करने के लिए तैयार है।
संक्षेप में, इस लेख में हमने R Markdown के साथ शुरुआत करना सीखा। सबसे पहले, हमने परिभाषित किया कि R Markdown क्या है और इसका उपयोग किस लिए होता है। फिर हमने सीखा कि R Markdown कैसे इंस्टॉल करें, टेक्स्ट और उसके विभिन्न घटकों को इससे कैसे फ़ॉर्मैट करें, कोड को कैसे फ़ॉर्मैट और चलाएँ, प्लॉट्स कैसे जनरेट करें, R Markdown कौन-कौन से आउटपुट फॉर्मैट्स प्रदान करता है, उन फॉर्मैट्स में किसी कार्यरत दस्तावेज़ को कैसे रेंडर करें, और अंतिम दस्तावेज़ को आगे साझा करने के लिए कैसे प्रकाशित करें।
R Markdown का हाथों-हाथ अभ्यास करने के लिए, हमारा Reporting with R Markdown कोर्स देखें, जो आपको डेटा से इनसाइट्स निकालने और अपने निष्कर्षों को PDF, HTML फ़ाइल या Shiny ऐप के रूप में प्रस्तुत करने में मदद करेगा।
आज ही अपनी R यात्रा शुरू करें!
कोर्स
कोर्स
कोर्स