সাধারণ কোডটি একটি পৃথক আর ফাইলের মধ্যে ফ্যাক্টর করুন এবং তারপরে যে আরএমডি ফাইলটি আপনি চান সেটিতে আর ফাইলটি উত্স করুন।
সুতরাং উদাহরণস্বরূপ বলি যে আমার কাছে আমার দুটি প্রতিবেদন তৈরি করতে হবে, ফ্লু আউটব্রেকস এবং বন্দুক বনাম বাটার বিশ্লেষণ। স্বাভাবিকভাবেই আমি দুটি আরএমডি ডকুমেন্ট তৈরি করেছি এবং এটি দিয়ে সম্পন্ন করব।
এখন ধরা যাক বস আসেন এবং ফ্লু আউটব্রেকস বনাম বাটারের দামগুলির পরিবর্তিততাগুলি দেখতে চান (9 মিমি গোলাবারুদ নিয়ন্ত্রণ করে)।
- নতুন প্রতিবেদনে প্রতিবেদনগুলি বিশ্লেষণের জন্য কোড অনুলিপি করা এবং আটকানো কোড পুনরায় ব্যবহার ইত্যাদির জন্য খারাপ ধারণা etc.
- আমি এটি দেখতে সুন্দর দেখতে চাই
আমার সমাধানটি এই ফাইলগুলিতে প্রকল্পটি ফ্যাক্টর করা ছিল:
- ফ্লু.আরএমডি
- বন্দুক_এন_বাটার.আরএমডি
- বন্দুক_ডাটা_ইম্পোর্ট.আর
- মাখন_ডাটা_ইম্পোর্ট.আর
প্রতিটি আরএমডি ফাইলের মধ্যে আমার মতো কিছু থাকে:
```{r include=FALSE}
source('flu_data_import.R')
```
এখানে সমস্যা হ'ল আমরা পুনরুত্পাদনযোগ্যতা হারাতে পারি। আমার সমাধানটি হ'ল প্রতিটি আরএমডি ফাইলে অন্তর্ভুক্ত করার জন্য একটি সাধারণ শিশু নথি তৈরি করা। সুতরাং আমি তৈরি প্রতিটি আরএমডি ফাইলের শেষে, আমি এটি যুক্ত করি:
```{r autodoc, child='autodoc.Rmd', eval=TRUE}
```
এবং অবশ্যই অটোডোক.আরএমডি:
Source Data & Code
----------------------------
<div id="accordion-start"></div>
```{r sourcedata, echo=FALSE, results='asis', warnings=FALSE}
if(!exists(autodoc.skip.df)) {
autodoc.skip.df <- list()
}
#Generate the following table:
for (i in ls(.GlobalEnv)) {
if(!i %in% autodoc.skip.df) {
itm <- tryCatch(get(i), error=function(e) NA )
if(typeof(itm)=="list") {
if(is.data.frame(itm)) {
cat(sprintf("### %s\n", i))
print(xtable(itm), type="html", include.rownames=FALSE, html.table.attributes=sprintf("class='exportable' id='%s'", i))
}
}
}
}
```
```{r allsource, echo=FALSE, results='asis', warning=FALSE, cache=FALSE}
fns <- unique(c(compact(llply(.data=llply(.data=ls(all.names=TRUE), .fun=function(x) {a<-get(x); c(normalizePath(getSrcDirectory(a)),getSrcFilename(a))}), .fun=function(x) { if(length(x)>0) { x } } )), llply(names(sourced), function(x) c(normalizePath(dirname(x)), basename(x)))))
for (itm in fns) {
cat(sprintf("#### %s\n", itm[2]))
cat("\n```{r eval=FALSE}\n")
cat(paste(tryCatch(readLines(file.path(itm[1], itm[2])), error=function(e) sprintf("Could not read source file named %s", file.path(itm[1], itm[2]))), sep="\n", collapse="\n"))
cat("\n```\n")
}
```
<div id="accordion-stop"></div>
<script type="text/javascript">
```{r jqueryinclude, echo=FALSE, results='asis', warning=FALSE}
cat(readLines(url("http://code.jquery.com/jquery-1.9.1.min.js")), sep="\n")
```
</script>
<script type="text/javascript">
```{r tablesorterinclude, echo=FALSE, results='asis', warning=FALSE}
cat(readLines(url("http://tablesorter.com/__jquery.tablesorter.js")), sep="\n")
```
</script>
<script type="text/javascript">
```{r jqueryuiinclude, echo=FALSE, results='asis', warning=FALSE}
cat(readLines(url("http://code.jquery.com/ui/1.10.2/jquery-ui.min.js")), sep="\n")
```
</script>
<script type="text/javascript">
```{r table2csvinclude, echo=FALSE, results='asis', warning=FALSE}
cat(readLines(file.path(jspath, "table2csv.js")), sep="\n")
```
</script>
<script type="text/javascript">
$(document).ready(function() {
$('tr').has('th').wrap('<thead></thead>');
$('table').each(function() { $('thead', this).prependTo(this); } );
$('table').addClass('tablesorter');$('table').tablesorter();});
//need to put this before the accordion stuff because the panels being hidden makes table2csv return null data
$('table.exportable').each(function() {$(this).after('<a download="' + $(this).attr('id') + '.csv" href="data:application/csv;charset=utf-8,'+encodeURIComponent($(this).table2CSV({delivery:'value'}))+'">Download '+$(this).attr('id')+'</a>')});
$('#accordion-start').nextUntil('#accordion-stop').wrapAll("<div id='accordion'></div>");
$('#accordion > h3').each(function() { $(this).nextUntil('h3').wrapAll("<div>"); });
$( '#accordion' ).accordion({ heightStyle: "content", collapsible: true, active: false });
</script>
এনবি, এটি আরএমডি -> এইচটিএমএল কর্মপ্রবাহের জন্য ডিজাইন করা হয়েছে। আপনি ক্ষীরের সাথে বা অন্য কোনও কিছুতে যান তবে এটি একটি কুরুচিপূর্ণ জগাখিচুড়ি হবে। এই আরএমডি ডকুমেন্টটি সমস্ত উত্স () এর এড ফাইলগুলির জন্য বিশ্ব পরিবেশের দিকে নজর রাখে এবং আপনার নথির শেষে তাদের উত্সকে অন্তর্ভুক্ত করে। এটিতে জ্যাকোরি ইউআই, টেবিলসোর্টার অন্তর্ভুক্ত রয়েছে এবং উত্সযুক্ত ফাইলগুলি দেখানোর / আড়াল করার জন্য অ্যাকর্ডিয়ন শৈলী ব্যবহার করার জন্য ডকুমেন্টটি সেট আপ করে। এটি একটি কাজ চলছে, তবে এটিকে আপনার নিজের ব্যবহারের সাথে খাপ খাইয়ে নিতে দ্বিধা বোধ করবেন।
ওয়ান-লাইনার নয়, আমি জানি। আশা করি এটি আপনাকে কমপক্ষে কিছু ধারণা দেয় :)
Rmdফাইলে অন্য আর স্ক্রিপ্টগুলি উত্স করতে পারেন । তবে আপনি কি অন্যান্যmarkdownফাইলগুলিতে সোর্স করতে চান কোনও ফাইলটি বোনা হচ্ছে?