从野外捕获的 reprex 中恢复干净、可运行的代码并将其写入用户的剪贴板。代码也会以不可见的方式返回,并可选择写入文件。三个不同的函数可解决各种形式的 wild-caught 表示。
用法
reprex_invert(
input = NULL,
wd = NULL,
venue = c("gh", "r"),
comment = opt("#>"),
outfile = deprecated()
)
reprex_clean(
input = NULL,
wd = NULL,
comment = opt("#>"),
outfile = deprecated()
)
reprex_rescue(
input = NULL,
wd = NULL,
prompt = getOption("prompt"),
continue = getOption("continue"),
outfile = deprecated()
)
参数
- input
-
特点。如果长度为 1 并且缺少终止换行符,则解释为包含 reprex 的文件的路径。否则,假设将 reprex 保存为字符向量。如果未提供,则参考剪贴板进行输入。如果剪贴板不可用并且我们在 RStudio 中,则使用当前选择。
- wd
-
当
input
不是文件路径时参考的可选文件路径。 (默认情况下,所有工作都在会话临时目录的子目录中悄悄完成。)wd
最常见的用法是设置wd = "."
,这意味着“在当前工作目录中代表正确的位置”。如果您确实必须使用本地文件演示某些内容,请执行此操作。 - venue
-
特点。必须是以下之一(不区分大小写):
-
"gh" 代表 GitHub-Flavored Markdown ,默认值
-
"r" 用于可运行的 R 脚本,带注释的输出交错。对于 Slack code snippets 也很有用;从 "Type" 下拉菜单中选择 "R" 以享受漂亮的语法突出显示。
-
Rich Text Format 的 "rtf"(un-reprexing 不支持)
-
"html" 适用于适合包含在较大 HTML 文档中的 HTML 片段(不支持 un-reprexing)
-
"slack" 用于粘贴到 Slack 消息中。针对选择退出 Slack 所见即所得接口的用户进行了优化。转到首选项 > 高级 > 输入选项,然后选择“使用标记格式化消息”。 (如果需要针对所见即所得进行优化的第二个 Slack 场地,请提出问题进行讨论。)
-
"so"为Stack Overflow Markdown。注意:这只是 "gh" 的别名,因为 Stack Overflow 于 2019 年 1 月开始支持 CommonMark 风格的隔离代码块。
-
"ds" 用于话语,例如 community.rstudio.com 。注意:这目前只是 "gh" 的别名。
-
- comment
-
匹配注释输出行的正则表达式
- outfile
-
有利于
wd
或提供文件路径input
。要在当前工作目录中表示,请使用wd = "."
现在,而不是outfile = NA
. - prompt
-
字符,R 命令开头的提示符
- continue
-
字符,续行提示符
职能
-
reprex_invert()
:尝试逆转reprex()
的效果。当venue = "r"
时,这只是调用reprex_clean()
。 -
reprex_clean()
:假设 R 代码是顶级的,可能与注释输出交错,例如从 GitHub 复制的显示表示或reprex(..., venue = "R")
的直接输出。此函数删除注释输出。 -
reprex_rescue()
:假设 R 代码行以提示开头,并且打印输出是顶级的,例如,您从 R 控制台复制/粘贴得到的内容。删除输出行并从包含 R 命令的行中删除提示。
例子
if (FALSE) {
# a roundtrip: R code --> rendered reprex, as gfm --> R code
original <- file.path(tempdir(), "original.R")
writeLines(glue::glue("
#' Some text
#+ chunk-label-and-options-cannot-be-recovered, message = TRUE
(x <- 1:4)
#' More text
y <- 2:5
x + y"), con = original)
reprex(input = original, html_preview = FALSE, advertise = FALSE)
reprexed <- sub("[.]R$", "_reprex.md", original)
writeLines(readLines(reprexed))
unreprexed <- reprex_invert(input = reprexed)
writeLines(unreprexed)
# clean up
file.remove(
list.files(dirname(original), pattern = "original", full.names = TRUE)
)
}
if (FALSE) {
# a roundtrip: R code --> rendered reprex, as R code --> original R code
code_in <- c(
"# a regular comment, which is retained",
"(x <- 1:4)",
"median(x)"
)
reprexed <- reprex(input = code_in, venue = "r", advertise = FALSE)
writeLines(reprexed)
code_out <- reprex_clean(input = reprexed)
writeLines(code_out)
identical(code_in, code_out)
}
if (FALSE) {
# rescue a reprex that was copied from a live R session
from_r_console <- c(
"> # a regular comment, which is retained",
"> (x <- 1:4)",
"[1] 1 2 3 4",
"> median(x)",
"[1] 2.5"
)
rescued <- reprex_rescue(input = from_r_console)
writeLines(rescued)
}
相关用法
- R reprex reprex_render 在新的 R 会话中渲染文档
- R reprex reprex 渲染一个reprex
- R reprex reprex_locale 在特定区域设置中渲染 reprex
- R reprex reprex_document 代表输出格式
- R SparkR repartition用法及代码示例
- R SparkR repartitionByRange用法及代码示例
- R SparkR read.stream用法及代码示例
- R readr datasource 创建源对象。
- R readr melt_delim 返回分隔文件中每个标记的熔化数据(包括 csv 和 tsv)
- R readr read_rds 读/写 RDS 文件。
- R readr read_lines 从文件中读取/写入行
- R readr parse_number 灵活地解析数字
- R SparkR refreshByPath用法及代码示例
- R readr read_fwf 将固定宽度文件读入 tibble
- R readxl read_excel 读取 xls 和 xlsx 文件
- R SparkR refreshTable用法及代码示例
- R readr read_builtin 从包中读取内置对象
- R readr Tokenizers 分词器。
- R readr melt_table 返回空格分隔文件中每个标记的熔化数据
- R readr date_names 创建或检索日期名称
- R SparkR read.jdbc用法及代码示例
- R readr type_convert 重新转换现有 DataFrame 中的字符列
- R readxl excel_sheets 列出 Excel 电子表格中的所有工作表
- R readxl readxl_example 获取 readxl 示例的路径
- R readxl excel_format 确定文件格式
注:本文由纯净天空筛选整理自Jennifer Bryan等大神的英文原创作品 Un-render a reprex。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。