Prepare Reproducible Example Code via the Clipboard
Convenience wrapper that uses the 'rmarkdown' package to render
small snippets of code to target formats that include both code and output.
The goal is to encourage the sharing of small, reproducible, and runnable
examples on code-oriented websites, such as <https://stackoverflow.com> and
<https://github.com>, or in email. The user's clipboard is the default source
of input code and the default target for rendered output. 'reprex' also
extracts clean, runnable R code from various common formats, such as
copy/paste from an R session.
Given R code on the clipboard, selected in RStudio, as an expression (quoted or not), or in a file …
- run it via
- with deliberate choices re: arguments and setup chunk.
Get resulting runnable code + output as
- Markdown, formatted for target venue, e.g.
so, or as
- R code, augmented with commented output.
Result is returned invisibly, placed on the clipboard, and written to a file. Preview an HTML version in RStudio viewer or default browser.
Install from CRAN:
or get a development version from GitHub:
On Linux, you probably want to install
xsel, so reprex can
access the X11 clipboard. This is ‘nice to have’, but not mandatory. The
sudo apt-get install or
sudo yum install installation methods
should work for both xclip and xsel.
Let’s say you copy this code onto your clipboard:
(y <- 1:4) mean(y)
reprex(), where the default target venue is GitHub:
A nicely rendered HTML preview will display in RStudio’s Viewer (if you’re in RStudio) or your default browser otherwise.
The relevant bit of GitHub-flavored Markdown is ready to be pasted from your clipboard:
``` r (y <- 1:4) #>  1 2 3 4 mean(y) #>  2.5 ```
Here’s what that Markdown would look like rendered in a GitHub issue:
(y <- 1:4) #>  1 2 3 4 mean(y) #>  2.5
Anyone else can copy, paste, and run this immediately.
Instead of reading from the clipboard, you can:
reprex(mean(rnorm(10)))to get code from expression.
reprex(input = "mean(rnorm(10))\n")gets code from character vector (detected via length or terminating newline). Leading prompts are stripped from input source:
reprex(input = "> median(1:3)\n")produces same output as
reprex(input = "median(1:3)\n")
reprex(input = "my_reprex.R")gets code from file
Use one of the RStudio add-ins to use the selected text or current file.
But wait, there’s more!
Set the target venue to Stack Overflow with
reprex(..., venue = "so").
Get a runnable R script, augmented with commented output, with
reprex(..., venue = "R"). This is useful for Slack, email, etc.
Prepare rendered, syntax-highlighted code snippets to paste into Keynote or PowerPoint, with
reprex(..., venue = "rtf"). This feature is still experimental; see the associated article for more.
By default, figures are uploaded to imgur.com and the resulting URL is dropped into an inline image tag.
outfileargument to control where results are left behind. Use
outfile = NAto work in current working directory.
Get clean, runnable code from wild-caught reprexes with
reprex_invert()= the opposite of
reprex_clean(), e.g. when you copy/paste from GitHub or Stack Overflow
reprex_rescue(), when you’re dealing with copy/paste from R Console
Please note that the reprex project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Functions in reprex
|un-reprex||Un-render a reprex|
|opt||Consult an option, then default|
|reprex-package||reprex: Prepare Reproducible Example Code via the Clipboard|
|reprex||Render a reprex|
|reprex_addin||Render a reprex|
Vignettes of reprex
Last month downloads
|License||MIT + file LICENSE|
|SystemRequirements||pandoc (>= 1.12.3) - http://pandoc.org|
|Packaged||2019-05-16 13:41:23 UTC; jenny|
|Date/Publication||2019-05-16 16:20:05 UTC|
|imports||callr (>= 2.0.0) , clipr (>= 0.4.0) , fs , rlang , rmarkdown , utils , whisker , withr|
|suggests||covr , devtools , fortunes , knitr , miniUI , rprojroot , rstudioapi , shiny , styler (>= 1.0.2) , testthat (>= 2.0.0)|
|depends||R (>= 3.1)|
|Contributors||David Robinson, RStudio, Hadley Wickham, James Hester|
Include our badge in your README