# R Markdown — Dynamic Documents and Reports for R > R Markdown combines narrative text written in Markdown with embedded R code chunks that execute during rendering. It produces reproducible reports, slide decks, dashboards, and articles in HTML, PDF, Word, and other formats via Pandoc. ## Install Save in your project root: # R Markdown — Dynamic Documents and Reports for R ## Quick Use ```r install.packages("rmarkdown") # Create a file report.Rmd, then render: rmarkdown::render("report.Rmd", output_format = "html_document") ``` ## Introduction R Markdown is an authoring framework from Posit (formerly RStudio) that lets analysts write documents combining prose, code, and results in a single file. When rendered, code chunks execute and their output (tables, plots, values) is woven into the final document. It is the standard approach for reproducible reporting in the R community. ## What R Markdown Does - Embeds executable R, Python, SQL, and Bash code chunks inside Markdown narrative - Renders to HTML, PDF (via LaTeX), Word, PowerPoint, and many other formats through Pandoc - Supports parameterized reports where input values change the output without editing the source - Provides output templates for articles, slides (ioslides, Slidy, reveal.js, xaringan), dashboards (flexdashboard), and websites - Integrates with knitr for code execution and caching, and with Pandoc for format conversion ## Architecture Overview An R Markdown file (.Rmd) is processed in two stages. First, knitr reads the file, executes each code chunk in an R session, captures the output, and produces a plain Markdown (.md) file. Second, Pandoc converts the Markdown to the target format (HTML, PDF, DOCX). R Markdown's YAML front matter specifies the output format and options. Custom output formats can be defined as R functions that configure Pandoc flags and provide templates. ## Self-Hosting & Configuration - Install the rmarkdown package from CRAN; Pandoc is bundled with RStudio or can be installed separately - Configure output options in the YAML header: title, author, date, output format, and format-specific settings - Use `params:` in the YAML header for parameterized reports that accept input values at render time - Enable code chunk caching with `knitr::opts_chunk$set(cache = TRUE)` to speed up iterative rendering - Deploy rendered HTML reports to RPubs, RStudio Connect, or any static web host ## Key Features - Single-source reproducibility: the document IS the analysis, ensuring results always match the code - Parameterized reports let users generate customized outputs without modifying the source - Chunk options control execution, display, caching, figure size, and error handling per chunk - Inline R expressions (`r expr`) embed computed values directly in narrative text - Ecosystem of extension packages adds specialized formats: flexdashboard, xaringan, distill, blogdown ## Comparison with Similar Tools - **Quarto** — the next-generation successor to R Markdown, supporting Python, Julia, and Observable alongside R; R Markdown remains stable and widely used - **Jupyter Notebook** — supports many languages and is dominant in Python; R Markdown produces cleaner version-controlled source files - **Marimo** — reactive Python notebooks; R Markdown is batch-rendered and document-oriented rather than interactive - **LaTeX** — full typesetting power; R Markdown provides a simpler Markdown front-end that can still output through LaTeX - **Org Mode (Emacs)** — literate programming in Emacs; R Markdown is more accessible and has broader tool support ## FAQ **Q: What is the difference between R Markdown and Quarto?** A: Quarto is the successor with multi-language support and a standalone CLI. R Markdown is R-centric and relies on the rmarkdown R package. Both produce similar output. **Q: Can I use Python code in R Markdown?** A: Yes. Use `{python}` code chunks. The reticulate package bridges R and Python, allowing data sharing between the two. **Q: How do I create a PDF from R Markdown?** A: Set `output: pdf_document` in the YAML header. A LaTeX distribution (TinyTeX recommended) must be installed for PDF rendering. **Q: Is R Markdown suitable for academic papers?** A: Yes. The rticles package provides templates for many journals. R Markdown handles citations, cross-references, and bibliographies. ## Sources - https://github.com/rstudio/rmarkdown - https://rmarkdown.rstudio.com/ --- Source: https://tokrepo.com/en/workflows/asset-6220c674 Author: AI Open Source