आर मार्कडाउन, निट्र, पंडोक और बुकडाउन के बीच संबंध


93

आर मार्केडाउन, निट्र, पंडोक और बुकडाउन की कार्यक्षमता के बीच क्या संबंध है?

विशेष रूप से एम्बेडेड आर कोड (जैसे .Rnwया .Rmd) अंतिम आउटपुट (जैसे .pdfया .html) में मार्कअप दस्तावेजों को बदलने में इन पैकेजों के बीच 'श्रम का विभाजन' क्या है ? और अगर Knitr का उपयोग RMarkdown को संसाधित करने के लिए किया जाता है, तो rmarkdownपैकेज क्या करता है और यह किस प्रकार अलग है markdown package?

जवाबों:


142

Pandoc

पंडोक एक दस्तावेज़ कनवर्टर है। यह कई अलग-अलग मार्कअप प्रारूपों से कई अन्य प्रारूपों में परिवर्तित हो सकता है, जैसे .doc, .pdfआदि।

पंडोक एक कमांड लाइन टूल है जिसमें कोई GUI नहीं है। यह सॉफ्टवेयर का एक स्वतंत्र टुकड़ा है, जो आर से अलग है। हालांकि, यह आर स्टूडियो के साथ बंडल है क्योंकि rmarkdownयह दस्तावेज़ रूपांतरण के लिए निर्भर करता है।

पंडोक न केवल दस्तावेजों को परिवर्तित करता है, बल्कि यह आधार मार्कडाउन भाषा के शीर्ष पर कार्यक्षमता को जोड़ता है ताकि इसे अधिक जटिल आउटपुट का समर्थन करने में सक्षम किया जा सके।

आर मार्कडाउन

आर मार्केड मार्कडाउन पर आधारित है:

मार्कडाउन (मार्कअप भाषा)

मार्कडाउन एक हल्की मार्कअप लैंग्वेज है जिसमें प्लेन टेक्स्ट फॉर्मेटिंग सिंटैक्स डिज़ाइन किया गया है ताकि इसे HTML और कई अन्य फॉर्मेट में बदला जा सके। एक मार्कडाउन फ़ाइल एक सादा पाठ फ़ाइल है जिसे आमतौर पर एक्सटेंशन दिया जाता है .md

HTML और लेटेक्स जैसी अन्य मार्कअप भाषाओं की तरह, यह R से पूरी तरह से स्वतंत्र है।

कोई स्पष्ट रूप से परिभाषित मार्कडाउन मानक नहीं है। इसने विखंडन का नेतृत्व किया क्योंकि विभिन्न विक्रेताओं ने दोषों को ठीक करने या लापता सुविधाओं को जोड़ने के लिए भाषा के अपने स्वयं के वेरिएंट लिखे।

मार्कडाउन (आर पैकेज)

markdownएक आर पैकेज है जो .RmdHTML में फ़ाइलों को परिवर्तित करता है । यह पूर्ववर्ती है rmarkdown, जो बहुत अधिक कार्यक्षमता प्रदान करता है। यह अब उपयोग के लिए अनुशंसित नहीं है।

आर मार्केडाउन (मार्कअप भाषा)

मार्कडाउन मार्कडाउन सिंटैक्स का एक विस्तार है। मार्काडाउन फाइलें सादी पाठ फाइलें होती हैं जिनमें आमतौर पर फाइल एक्सटेंशन होता है.Rmd । वे मार्कडाउन सिंटैक्स के एक एक्सटेंशन का उपयोग करके लिखे गए हैं जो आर कोड को उन तरीकों से एम्बेड करने में सक्षम बनाता है जिन्हें बाद में निष्पादित किया जा सकता है।

क्योंकि उन्हें rmarkdownपैकेज द्वारा संसाधित किए जाने की उम्मीद है , आर मार्केड फ़ाइल के हिस्से के रूप में पंडोक मार्कडाउन सिंटैक्स का उपयोग करना संभव है । यह मूल मार्काट सिंटैक्स का विस्तार है जो कच्चे HTML / लेटेक्स और टेबल जैसी अतिरिक्त कार्यक्षमता प्रदान करता है।

आर मार्कडाउन (पैकेज)

आर पैकेज rmarkdownएक पुस्तकालय है जो आगे बढ़ता है और परिवर्तित होता है.Rmd कई अलग-अलग प्रारूपों में फ़ाइलों को है।

मुख्य कार्य है rmarkdown::renderजो पैंडो के कंधों पर खड़ा है । यह फ़ंक्शन 'इनपुट फ़ाइल को पंडोक का उपयोग करके निर्दिष्ट आउटपुट प्रारूप में प्रस्तुत करता है। यदि इनपुट के लिए बुनाई की आवश्यकता होती है तो knitr::knitउसे पैंडॉक से पहले कहा जाता है।

RMarkdown पैकेज का उद्देश्य पंडोक विकल्पों को अनुकूलित करने के लिए यथोचित रूप से अच्छी चूक और एक आर-अनुकूल इंटरफेस प्रदान करना है।

RMarkdown फ़ाइलों के शीर्ष पर देखा जाने वाला YAML मेटाडेटा विशिष्ट रूप से rmarkdown::renderबिल्ड प्रक्रिया का मार्गदर्शन करने के लिए विकल्पों को पारित करने के लिए है।

ध्यान दें कि RMarkdown केवल markdown syntax के साथ कार्य करता है। यदि आप एक कन्वर्ट करने के लिए चाहते हैं .Rhtmlया एक .Rnwफ़ाइल, आप सुविधा में निर्मित कार्यों का उपयोग करना चाहिए Knitr, जैसे knitr::knit2htmlऔरknitr:knit2pdf

Knitr

Knitr एम्बेडेड कोड के साथ एक सादा पाठ दस्तावेज़ लेता है, कोड निष्पादित करता है और दस्तावेज़ में परिणाम वापस करता है।

उदाहरण के लिए, यह रूपांतरित होता है

कोर फ़ंक्शन है knitr::knitऔर डिफ़ॉल्ट रूप से यह इनपुट दस्तावेज़ को देखेगा और कोशिश करेगा और अनुमान लगाएगा कि यह किस प्रकार का है - Rnw, Rmd आदि।

यह मुख्य कार्य तीन भूमिकाएँ करता है: - एक स्रोत पार्सर, जो इनपुट दस्तावेज़ को देखता है और पता लगाता है कि कौन से कोड उपयोगकर्ता को मूल्यांकन करना चाहते हैं। - एक कोड मूल्यांकनकर्ता, जो इस कोड का मूल्यांकन करता है - एक आउटपुट रेंडरर, जो दस्तावेज़ के मूल्यांकन के परिणामों को एक प्रारूप में वापस लिखता है जो कच्चे आउटपुट प्रकार द्वारा व्याख्या योग्य है। उदाहरण के लिए, यदि इनपुट फ़ाइल ए है .Rmd, तो आउटपुट रेंडर कोड मूल्यांकन के आउटपुट को चिह्नित करता है.md प्रारूप करता है।

दस्तावेज़ स्वरूपों के बीच परिवर्तित

Knitr दस्तावेज़ प्रारूपों के बीच परिवर्तित नहीं होता है - जैसे कि a .mdमें परिवर्तित करना .html। हालांकि, यह करने के लिए अन्य पुस्तकालयों का उपयोग करने में आपकी मदद करने के लिए कुछ सुविधा प्रदान करता है। यदि आप rmarkdownपैकेज का उपयोग कर रहे हैं , तो आपको इस कार्यक्षमता को नजरअंदाज करना चाहिए क्योंकि यह द्वारा सुपररेड किया गया है rmarkdown::render

एक उदाहरण है knitr:knit2pdfजो होगा: 'इनपुट Rnw या Rrst डॉक्यूमेंट को बुनें, और texi2pdf या rst2pdf का उपयोग करके पीडीएफ को संकलित करें'।

भ्रम का एक संभावित स्रोत है knitr::knit2html, जो "इनपुट मार्कडाउन स्रोत को बुनने के लिए एक सुविधा कार्य है और markdown::markdownToHTMLपरिणाम को HTML में बदलने के लिए कॉल करता है।" यह अब विरासत की कार्यक्षमता है क्योंकि markdownपैकेज को पैकेज द्वारा सुपरसीड किया गया rmarkdownहै। इस नोट को देखें ।

Bookdown

बुकडाउन पैकेज आर मार्कडाउन के शीर्ष पर बनाया गया है, और मार्कडाउन सिंटैक्स की सादगी को विरासत में मिला है, साथ ही कई प्रकार के आउटपुट प्रारूपों (पीडीएफ / एचटीएमएल / वर्ड /…) की संभावना भी है।

यह बहु-पृष्ठ HTML आउटपुट, नंबरिंग और क्रॉस-रेफ़रिंग आंकड़े / टेबल / सेक्शन / समीकरण, पुर्ज़े / पुर्ज़े सम्मिलित करने और GitBook स्टाइल ( https://www.gitbook.com ) को सुरुचिपूर्ण और आकर्षक HTML बनाने के लिए प्रदान करता है। पुस्तक के पन्ने।


2
मुझे यह बहुत भ्रामक लगा इसलिए मैंने यहां अपना सर्वश्रेष्ठ प्रदर्शन किया। अगर मुझे कुछ गड़बड़
लगी

6
एक पहलू जो मुझे भ्रामक लगता है वह है टूलचैन के प्रत्येक चरण में दिए गए मापदंडों का प्रलेखन। लगभग कोई इंटरएक्टिव मदद नहीं है (जैसे कि ऑटोकोम्पल्यूशन) और किसी को यह अनुमान लगाना होगा कि यामल हेडर में कौन से मापदंडों को बुलाया जाना चाहिए, या knitr_opts(मैं हमेशा भूल जाता हूं कि इसे क्या कहा जाता है), या कस्टम पैंडो तर्क के माध्यम से, या अतिरिक्त याम फ़ाइलों के माध्यम से या एक कस्टम pandoc टेम्पलेट ... यह कभी-कभी जंगल का एक सा महसूस करता है, खासकर जब आप श्रृंखला में LaTeX जोड़ते हैं।
बपतिस्मा

3
@ बैपटिस्ट मैं पूरी तरह से सहमत हूं। और यही कारण है कि मैं नंगे लाटेक्स के साथ आरएनडब्ल्यू दस्तावेजों को पसंद करता हूं। कोई मध्यवर्ती pandocकदम, कम जादू, कम भ्रम। बस भर्ती सीढ़ी लटेक्स सीखने की अवस्था। मेरी राय में, जब आप साधारण डिफॉल्ट सामान से संतुष्ट होते हैं, तो रमार्कडाउन बहुत अच्छा होता है। लेकिन जैसे ही आपको इसे ट्विक करना होगा, जटिलता तेजी से बढ़ती है।
सीएल।

3
यह सबसे अच्छा स्पष्टीकरण है जो मुझे यह सब मिला है। यह शुरुआती लोगों के लिए बहुत ही भ्रामक है या यहां तक ​​कि आर और लेटेक्स में खुद के जैसे अलग-अलग वर्षों के अनुभव वाले हैं। बहुत बढ़िया पोस्ट।
स्टेट्सटूडेंट

2
@StatsStudent मुझे लगता है कि rstudio rmarkdown चीट शीट के पिछले संस्करण में एक आरेख था जो rmarkdown से आउटपुट बनाने में विभिन्न चरणों को समझने में काफी मददगार था। शायद यहाँ एक उत्तर आरेख के साथ कर सकता है?
मार्क नील
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.