কীভাবে দুটি একক আউটপুটে দুটি আরএমকারডাউন (.Rmd) ফাইল একত্রিত করবেন?


104

আমার একই ফোল্ডারে দুটি ফাইল রয়েছে: অধ্যায় 1.আরএমডি এবং অধ্যায় 2.আরএমডি, নীচের সামগ্রী সহ:

অধ্যায় 1.আরএমডি

---
title: "Chapter 1"
output: pdf_document
---

## This is chapter 1. {#Chapter1}

Next up: [chapter 2](#Chapter2)

অধ্যায় 2.আরএমডি

---
title: "Chapter 2"
output: pdf_document
---

## This is chapter 2. {#Chapter2}

Previously: [chapter 1](#Chapter1)

আমি কীভাবে এগুলি বুনতে পারি যাতে তারা একক পিডিএফ আউটপুটে একত্রিত হয়?

অবশ্যই, render(input = "chapter1.Rmd", output_format = "pdf_document")পুরোপুরি কাজ render(input = "chapter1.Rmd", input = "chapter2.Rmd", output_format = "pdf_document")করে কিন্তু না।

আমি কেন এটি করতে চাই? যৌক্তিক ফাইলগুলিতে একটি বিশাল দস্তাবেজ ভাঙতে ।

আমি @ হাডলির বুকডাউন প্যাকেজটি ব্যবহার করেছি .আরএমডি থেকে ল্যাটেক্স তৈরি করতে তবে এই বিশেষ কাজের জন্য এটি ওভারকিলের মতো বলে মনে হচ্ছে। নিখরচায় / প্যান্ডোক / লিনাক্স কমান্ড লাইনটি আমি অনুপস্থিত ব্যবহার করে কি কোনও সাধারণ সমাধান আছে? ধন্যবাদ


4
কেন শুধু ল্যাটেক্সে নেটিভলি লিখবেন না? আপনার এটির জন্য প্রয়োজনীয় সমস্ত সরঞ্জামগুলি ল্যাটেক্সে অন্তর্নির্মিত বলে মনে হয় এবং বুনন প্রক্রিয়া যাইহোক কোনও টেক্স ইঞ্জিনের মাধ্যমে আপনার দস্তাবেজটি চালায়।
থমাস

14
হ্যাঁ আমি লেটেক্স পছন্দ করি এবং এটিতে এমবেডিং কোডটি প্রবেশ করা দরকার এটি একটি ভাল পরিকল্পনা বি read পড়া / লেখার লাইনের ফাংশন এটিএম দিয়ে একটি আর সলিউশন নিয়ে কাজ করা কারণ আমার বিশ্বাস মার্কডাউন ব্যবহারকারী-বান্ধব ভবিষ্যত! arxiv.org/abs/1402.1894 অর্থাৎ এটি একটি দার্শনিক সিদ্ধান্ত: আপনি বিশ্বের যে পরিবর্তন দেখতে চান তা হোন।
রবিনলোলেস

4
এছাড়াও, মার্কডাউন হিসাবে লেখার ফলে অবদানের ক্ষেত্রে বাধা হ্রাস। শেষ পর্যন্ত এটি লটেক্স হবে তবে আপাতত মার্কডাউন যথেষ্ট।
রবিনলভলেস

4
হ্যাডলির বুকডাউনটি এখন @ আইহিইই দ্বারা তৈরি করা হয়েছে এবং আরও অনেক কাজ এবং দরকারী ডকুমেন্টেশন রয়েছে: rstudio.github.io/bookdown
বেন

উত্তর:


143

আগস্ট, 2018 আপডেট: এই উত্তরটি বুকডাউনের আবির্ভাবের আগে লেখা হয়েছিল , যা রমার্কডাউন ভিত্তিক বই লেখার জন্য আরও শক্তিশালী পদ্ধতি approach @ মিকি-হার্পারের উত্তরে ন্যূনতম বুকডাউন উদাহরণটি দেখুন !

আমি যখন কোনও বড় প্রতিবেদনকে আলাদা আরএমডিতে ভাঙ্গতে চাই, আমি সাধারণত একটি পিতামাতার আরএমডি তৈরি করি এবং অধ্যায়গুলি শিশু হিসাবে অন্তর্ভুক্ত করি। এই ব্যবহারটি নতুন ব্যবহারকারীদের পক্ষে বোঝা সহজ এবং আপনি যদি সামগ্রীর একটি সারণী (টোক) অন্তর্ভুক্ত করেন তবে অধ্যায়গুলির মধ্যে চলাচল করা সহজ।

রিপোর্ট.আরএমডি

---  
title: My Report  
output: 
  pdf_document:
    toc: yes 
---

```{r child = 'chapter1.Rmd'}
```

```{r child = 'chapter2.Rmd'}
```

অধ্যায় 1.আরএমডি

# Chapter 1

This is chapter 1.

```{r}
1
```

অধ্যায় 2.আরএমডি

# Chapter 2

This is chapter 2.

```{r}
2
```

নির্মাণ

rmarkdown::render('report.Rmd')

যা উত্পাদন করে: আমার রিপোর্ট

এবং আপনি যদি আপনার সন্তানের নথিগুলির জন্য খণ্ডগুলি তৈরি করার দ্রুত উপায় চান:

rmd <- list.files(pattern = '*.Rmd', recursive = T)
chunks <- paste0("```{r child = '", rmd, "'}\n```\n")
cat(chunks, sep = '\n')
# ```{r child = 'chapter1.Rmd'}
# ```
#
# ```{r child = 'chapter2.Rmd'}
# ```

এটি কাজ করে, তবুও আমার 10 টি অধ্যায় রয়েছে। আমি যখন ফাইলগুলি রেন্ডার করি তখন এটি 5 তম ফাইল পর্যন্ত যায়। আমি পিডিএফ নেভিগেশন প্যানেল থেকে সমস্ত শিরোনাম দেখতে পাচ্ছি কিন্তু পৃষ্ঠাগুলি প্রদর্শিত হয় না।
স্যুট আতান পিএইচডি

28

আমি প্রস্তাব দিচ্ছি যে একাধিক আর মার্কডাউন ফাইলগুলি থেকে প্রতিবেদন তৈরি করার জন্য লোকেরা বুকডাউন প্যাকেজটি ব্যবহার করে। এটি ক্রস-রেফারেন্সিংয়ের মতো অনেক দরকারী বৈশিষ্ট্য যুক্ত করে যা দীর্ঘ দস্তাবেজের জন্য খুব দরকারী।

@ এরিকের উদাহরণটি মানিয়ে নেওয়া , এখানে বুকডাউন সেটআপের একটি ন্যূনতম উদাহরণ । মূল বিশদটি হ'ল মূল ফাইলটি কল করতে হবে index.Rmdএবং অতিরিক্ত ওয়াইএএমএল লাইনটি অবশ্যই অন্তর্ভুক্ত করতে হবে site: bookdown::bookdown_site:

index.Rmd

---
title: "A Minimal bookdown document"
site: bookdown::bookdown_site
output:
  bookdown::pdf_document2:
    toc: yes
---

01-পরিচয়.আরএমডি :

# Chapter 1

This is chapter 1.

```{r}
1
```

02-ভূমিকা.আরএমডি :

# Chapter 2

This is chapter 2.

```{r}
2
```

যদি আমরা index.Rmd বুনন করি তবে বুকডাউনটি একই ডিরেক্টরিতে সমস্ত ফাইলকে বর্ণানুক্রমিক ক্রমে একীভূত করবে (অতিরিক্ত _bookdown.ymlফাইল ব্যবহার করে এই আচরণটি পরিবর্তন করা যেতে পারে )।

এখানে চিত্র বর্ণনা লিখুন

একবার আপনি এই বেসিক সেটআপটি দিয়ে স্বাচ্ছন্দ্য বোধ করলে অতিরিক্ত কনফিগারেশন ফাইলগুলি ব্যবহার করে বুকডাউন ডকুমেন্ট এবং আউটপুট ফর্ম্যাটগুলি কাস্টমাইজ করা সহজ _bookdown.ymland_output.yml

আরও পড়া


এইভাবে নেস্টেড আরএমডি ফাইলগুলি রেন্ডার করা সম্ভব? কিভাবে? আমি একটি অধ্যায়ে প্রতিটি উপাদান জন্য একক আরএমডি করতে চাই ।
জঙ্গোরেকি

বুকডাউন সাধারণত প্রতিটি ফাইলের একটি অধ্যায় থাকে বলে সুপারিশ করে। তবে, ইচ্ছা করলে আলাদা ফাইলগুলিতে বিভক্ত হওয়া উচিত should সবচেয়ে সহজ উপায় হ'ল প্রতিটি ফাইলের সংখ্যার সূচক যেমন 1-1, 1-2, 1-3 ইত্যাদি সরবরাহ করা
মাইকেল হার্পার

আমি শেষে পরিশিষ্ট যুক্ত করার চেষ্টা করছিলাম যা উভয় নথির কোড দেখায়। আমি কীভাবে অর্জন করতে পারি?
নবীন গ্যাব্রিয়েল

এটিকে আলাদা আলাদা প্রশ্নের মতো মনে হচ্ছে। আপনি অন্য প্রশ্নটি খুলতে এবং একটি সম্পূর্ণ উদাহরণ প্রদান করতে চাইতে পারেন যা আমি উত্তর দেওয়ার জন্য যথাসাধ্য চেষ্টা করব :)
মাইকেল হার্পার

স্পেসিফিকেশন: বোনা কেবলমাত্র বর্তমান নথির পূর্বরূপ দেখায়, "বিল্ড বই" এগুলি সমস্ত তৈরি করে।
রাসমুস লারসেন

4

এটি আমার পক্ষে কাজ করেছে:

Rmd_bind <- 
    function(dir = ".",
    book_header = readLines(textConnection("---\ntitle: 'Title'\n---")))
{
    old <- setwd(dir)
    if(length(grep("book.Rmd", list.files())) > 0){
    warning("book.Rmd already exists")
    }
    write(book_header, file = "book.Rmd", )
    cfiles <- list.files(pattern = "*.Rmd", )
    ttext <- NULL
    for(i in 1:length(cfiles)){
    text <- readLines(cfiles[i])
    hspan <- grep("---", text)
    text <- text[-c(hspan[1]:hspan[2])]
    write(text, sep = "\n", file = "book.Rmd", append = T)
    }
    render("book.Rmd", output_format = "pdf_document")
    setwd(old)
    }

কল্পনা করুন এর থেকে আরও ভাল সমাধান আছে এবং এটির মতো রমারডডাউন বা নিটার প্যাকেজগুলির মধ্যে এমন কিছু পাওয়া ভাল।


9
আমি মনে করি এটি একটি যুক্তিসঙ্গত সমাধান, আপনি ব্যতীত কয়েকটি প্রথম বন্ধনী (এবং প্রবর্তন !!) ভুলে গেছেন
Yihui Xie
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.