reprex

渲染 R 代码以供在 GitHub 或 StackOverflow 等网站上共享。「Render bits of R code for sharing, e.g., on GitHub or StackOverflow.」

Github星跟蹤圖

reprex

CRAN\_Status\_Badge
R-CMD-check
Codecov test coverage

Overview

Prepare reprexes for posting to GitHub
issues
,
StackOverflow, in Slack messages or snippets, or even to paste into PowerPoint or Keynote slides.
What is a reprex? It’s a reproducible example, 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 Text

The 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:

install.packages("reprex")

or get a development version from GitHub:

# install.packages("pak")
pak::pak("tidyverse/reprex")

On Linux, you probably want to install
xclip or
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:

reprex()

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 (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:

(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 for more.

  • By default, figures are uploaded to 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

主要指標

概覽
名稱與所有者tidyverse/reprex
主編程語言R
編程語言R (語言數: 4)
平台
許可證Other
所有者活动
創建於2015-08-25 17:06:45
推送於2024-09-10 22:40:46
最后一次提交
發布數17
最新版本名稱v2.1.1 (發布於 )
第一版名稱v0.1.0 (發布於 )
用户参与
星數744
關注者數19
派生數81
提交數765
已啟用問題?
問題數340
打開的問題數19
拉請求數94
打開的拉請求數1
關閉的拉請求數33
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?