una tutorial the sheet insertar imagen guide examples ecuaciones descargar definitive como cheat r knitr pandoc r-markdown

tutorial - ¿Cómo combinar dos archivos RMarkdown(.Rmd) en una sola salida?



r markdown tutorial pdf (3)

Actualización de agosto de 2018: esta respuesta se escribió antes del advenimiento de bookdown , que es un enfoque más poderoso para escribir libros basados ​​en Rmarkdown. ¡Echa un vistazo al ejemplo de bookdown mínimo en la answer @Mikey-Harper!

Cuando quiero dividir un informe grande en Rmd separado, normalmente creo un Rmd principal e incluyo los capítulos como secundarios. Este enfoque es fácil de entender para los nuevos usuarios y, si incluye una tabla de contenido (toc), es fácil navegar entre los capítulos.

informe.Rmd

--- title: My Report output: pdf_document: toc: yes --- ```{r child = ''chapter1.Rmd''} ``` ```{r child = ''chapter2.Rmd''} ```

capítulo1. rmd

# Chapter 1 This is chapter 1. ```{r} 1 ```

capítulo2.rmd

# Chapter 2 This is chapter 2. ```{r} 2 ```

Construir

rmarkdown::render(''report.Rmd'')

Lo que produce:

Y si desea una forma rápida de crear los fragmentos para sus documentos secundarios:

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''} # ```

Tengo dos archivos en la misma carpeta: chapter1.Rmd y chapter2.Rmd, con el siguiente contenido:

capítulo1. rmd

--- title: "Chapter 1" output: pdf_document --- ## This is chapter 1. {#Chapter1} Next up: [chapter 2](#Chapter2)

capítulo2.rmd

--- title: "Chapter 2" output: pdf_document --- ## This is chapter 2. {#Chapter2} Previously: [chapter 1](#Chapter1)

¿Cómo puedo tejer estos para que se combinen en una sola salida pdf?

Por supuesto, render(input = "chapter1.Rmd", output_format = "pdf_document") funciona perfectamente pero render(input = "chapter1.Rmd", input = "chapter2.Rmd", output_format = "pdf_document") no lo hace.

¿Por qué quiero hacer esto? Para dividir un documento gigante en archivos lógicos.

He usado el paquete bookdown para construir látex a partir de .Rmd, pero esto parece una exageración para esta tarea en particular. ¿Hay una solución simple utilizando la línea de comandos knitr / pandoc / linux? ¿Me estoy perdiendo? Gracias.


Esto funcionó para mí:

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) }

Imagina que hay una solución mejor y sería bueno tener algo como esto en los paquetes rmarkdown o knitr.


Recomiendo que la gente use el paquete de bookdown para crear informes a partir de varios archivos R Markdown. Agrega muchas características útiles, como referencias cruzadas, que son muy útiles para documentos más largos.

Adaptando el ejemplo de @Eric , aquí hay un ejemplo mínimo de la configuración de bookdown . El detalle principal es que el archivo principal debe llamarse index.Rmd y debe incluir el site: bookdown::bookdown_site línea YAML adicional site: bookdown::bookdown_site :

index.Rmd

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

01-intro.Rmd :

# Chapter 1 This is chapter 1. ```{r} 1 ```

02-intro.Rmd :

# Chapter 2 This is chapter 2. ```{r} 2 ```

Si index.Rmd el index.Rmd bookdown fusionará todos los archivos en el mismo directorio en orden alfabético (este comportamiento puede cambiarse utilizando un archivo adicional _bookdown.yml ).

Una vez que se sienta cómodo con esta configuración básica, es fácil personalizar el documento de reserva y los formatos de salida utilizando archivos de configuración adicionales, es decir, _bookdown.yml y _output.yml

Otras lecturas