두 개의 RMarkdown(.Rmd) 파일을 단일 출력으로 결합하는 방법은 무엇입니까?
같은 폴더에 두 개의 파일이 있습니다. 1장입니다.Rmd와 2장.Rmd(다음 내용 포함):
제1장Rmd
---
title: "Chapter 1"
output: pdf_document
---
## This is chapter 1. {#Chapter1}
Next up: [chapter 2](#Chapter2)
제2장Rmd
---
title: "Chapter 2"
output: pdf_document
---
## This is chapter 2. {#Chapter2}
Previously: [chapter 1](#Chapter1)
어떻게 하면 이것들이 하나의 pdf 출력으로 결합될 수 있을까요?
물론이야.render(input = "chapter1.Rmd", output_format = "pdf_document")
완벽하게 작동하지만,render(input = "chapter1.Rmd", input = "chapter2.Rmd", output_format = "pdf_document")
하지 않다.
내가 왜 이걸 하고 싶은 거지?대용량 문서를 논리 파일로 분할합니다.
@hadley의 북다운 패키지를 사용하여 라텍스를 만들었습니다.Rmd 하지만 이것은 이 특정 작업에 대한 과잉 살상인 것 같습니다.제가 빠진 knitr/pandoc/linux 명령줄을 사용한 간단한 솔루션이 있습니까?감사해요.
2018년 8월 업데이트:이 대답은 북다운이 등장하기 전에 쓰여졌는데, 이것은 R마크다운 기반의 책을 쓰는 더 강력한 접근법입니다.@Mikey-Harper의 답변에서 최소한의 북다운 예를 확인하십시오!
큰 보고서를 별도의 Rmd로 나누고 싶을 때, 저는 보통 상위 Rmd를 만들고 그 장들을 어린이로 포함시킵니다.이 접근 방식은 신규 사용자가 쉽게 이해할 수 있으며, 목차(toc)를 포함하면 장 간 이동이 쉽습니다.
report.rmd
---
title: My Report
output:
pdf_document:
toc: yes
---
```{r child = 'chapter1.Rmd'}
```
```{r child = 'chapter2.Rmd'}
```
제1장Rmd
# Chapter 1
This is chapter 1.
```{r}
1
```
제2장Rmd
# 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'}
# ```
저는 사람들이 여러 R 마크다운 파일에서 보고서를 작성할 때 북다운 패키지를 사용하는 것을 추천합니다.상호 참조와 같은 많은 유용한 기능이 추가되어 더 긴 문서에 매우 유용합니다.
@Eric의 예를 적용하여 북다운 설정의 최소 예를 소개합니다.주요 세부 사항은 기본 파일을 호출해야 한다는 것입니다.index.Rmd
추가 YAML 라인을 포함해야 합니다.site: bookdown::bookdown_site
:
index.Rmd
---
title: "A Minimal bookdown document"
site: bookdown::bookdown_site
output:
bookdown::pdf_document2:
toc: yes
---
01 - 인트로Rmd:
# Chapter 1
This is chapter 1.
```{r}
1
```
02- 인트로.Rmd:
# Chapter 2
This is chapter 2.
```{r}
2
```
우리가 뜨개질을 하면index.Rmd
북다운은 동일한 디렉토리에 있는 모든 파일을 알파벳 순서로 병합합니다(이 동작은 추가를 사용하여 변경할 수 있습니다)._bookdown.yml
파일).
이 기본 설정이 익숙해지면 추가 구성 파일 등을 사용하여 북다운 문서 및 출력 형식을 쉽게 사용자 정의할 수 있습니다. _bookdown.yml
그리고._output.yml
추가 읽기
- R 마크다운: 최종 가이드: 11장은 북다운에 대한 훌륭한 개요를 제공합니다.
- 북다운으로 책을 작성하면 북다운에 대한 포괄적인 가이드가 제공되며, 자세한 내용은 권장됩니다.
이것은 저에게 효과가 있었습니다.
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)
}
더 나은 해결책이 있다고 상상해 보세요. 그리고 rmarkdown이나 knitr 패키지에 이런 것이 있으면 좋을 것입니다.
언급URL : https://stackoverflow.com/questions/25824795/how-to-combine-two-rmarkdown-rmd-files-into-a-single-output
'programing' 카테고리의 다른 글
쿠키 존재 여부 확인 (0) | 2023.06.14 |
---|---|
C/C++에서 "\"?가 이스케이프 시퀀스인 이유는 무엇입니까? (0) | 2023.06.14 |
C/C++ 라이브러리를 여러 클라이언트 언어로 사용할 수 있도록 설계하는 방법은 무엇입니까? (0) | 2023.06.14 |
C: 다차원 어레이의 메모리를 올바르게 확보 (0) | 2023.06.09 |
varchar SQL 개발자에서 선행 0을 제거하는 중 (0) | 2023.06.09 |