Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tidyverse/reprex
Render bits of R code for sharing, e.g., on GitHub or StackOverflow.
https://github.com/tidyverse/reprex
github r reproducibility rmarkdown stackoverflow
Last synced: about 1 month ago
JSON representation
Render bits of R code for sharing, e.g., on GitHub or StackOverflow.
- Host: GitHub
- URL: https://github.com/tidyverse/reprex
- Owner: tidyverse
- License: other
- Created: 2015-08-25T17:06:45.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-09-10T22:40:46.000Z (4 months ago)
- Last Synced: 2024-10-28T23:01:33.598Z (3 months ago)
- Topics: github, r, reproducibility, rmarkdown, stackoverflow
- Language: R
- Homepage: https://reprex.tidyverse.org
- Size: 22 MB
- Stars: 740
- Watchers: 19
- Forks: 81
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Support: .github/SUPPORT.md
Awesome Lists containing this project
- jimsghstars - tidyverse/reprex - Render bits of R code for sharing, e.g., on GitHub or StackOverflow. (R)
README
[![CRAN\_Status\_Badge](https://www.r-pkg.org/badges/version/reprex)](https://cran.r-project.org/package=reprex)
[![R-CMD-check](https://github.com/tidyverse/reprex/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/tidyverse/reprex/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/tidyverse/reprex/branch/main/graph/badge.svg)](https://app.codecov.io/gh/tidyverse/reprex?branch=main)## Overview
Prepare reprexes for posting to [GitHub
issues](https://docs.github.com/issues/tracking-your-work-with-issues/about-issues),
[StackOverflow](https://stackoverflow.com/questions/tagged/r), in Slack [messages](https://slack.com/intl/en-ca/help/articles/201457107-Send-and-read-messages) or [snippets](https://slack.com/intl/en-ca/help/articles/204145658-Create-a-snippet), or even to paste into PowerPoint or Keynote slides.
What is a `reprex`? It’s a **repr**oducible **ex**ample, as coined by
Romain Francois in a tweet from 2014.Given R code on the clipboard, selected in RStudio, as an expression
(quoted or not), or in a file …- run it via `rmarkdown::render()`,
- with deliberate choices re: `render()` arguments, knitr options, and
Pandoc options.Get resulting runnable code + output as
- Markdown, suitable for GitHub or Stack Overflow or Slack, or as
- R code, augmented with commented output, or as
- Plain HTML or (experimental) Rich TextThe result is returned invisibly, written to a file and, if possible, placed on the clipboard.
Preview an HTML version in RStudio viewer or default browser.## Installation
Install from CRAN:
``` r
install.packages("reprex")
```or get a development version from GitHub:
``` r
# install.packages("pak")
pak::pak("tidyverse/reprex")
```On Linux, you probably want to install
[xclip](https://github.com/astrand/xclip) or
[xsel](https://www.vergenet.net/~conrad/software/xsel/), so reprex can
access the X11 clipboard. This is 'nice to have', but not mandatory. The
usual `sudo apt-get install` or `sudo yum install` installation methods
should work for both xclip and xsel.## Usage
Let’s say you copy this code onto your clipboard (or, on RStudio Server or Cloud, select it):
(y <- 1:4)
mean(y)Then call `reprex()`, where the default target venue is GitHub:
``` r
reprex()
```A nicely rendered HTML preview will display in RStudio's Viewer (if
you’re in RStudio) or your default browser otherwise.![](man/figures/README-viewer-screenshot.png)
The relevant bit of GitHub-flavored Markdown is ready to be pasted from
your clipboard (on RStudio Server or Cloud, you will need to copy this yourself):``` r
(y <- 1:4)
#> [1] 1 2 3 4
mean(y)
#> [1] 2.5
```Here’s what that Markdown would look like rendered in a GitHub issue:
``` r
(y <- 1:4)
#> [1] 1 2 3 4
mean(y)
#> [1] 2.5
```Anyone else can copy, paste, and run this immediately.
In addition to GitHub, this Markdown also works on Stack Overflow and Discourse. Those venues can be formally requested via `venue = "so"` and `venue = "ds"`, but they are just aliases for `venue = "gh"`.
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\!
- Get slightly different Markdown, optimized for Slack messages, with
`reprex(..., venue = "slack")`.- Get a runnable R script, augmented with commented output, with
`reprex(..., venue = "R")`. This is useful for Slack code snippets, email,
etc.- Get html with `reprex(..., venue = "html")`. Useful for sites that don't
support Markdown.- Prepare (un)rendered, syntax-highlighted code snippets to paste into
Keynote or PowerPoint, with `reprex(..., venue = "rtf")`. This
feature is still experimental; see the [associated article](https://reprex.tidyverse.org/articles/articles/rtf.html) for more.- By default, figures are uploaded to [imgur.com](https://imgur.com/)
and the resulting URL is dropped into an inline image tag.- If you really need to reprex in a specific directory, use the `wd`
argument. For example, `reprex(wd = ".")` requests the current
working directory.
- Append session info via `reprex(..., session_info = TRUE)`.- Get clean, runnable code from wild-caught reprexes with
- `reprex_invert()` = the opposite of `reprex()`
- `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