动机:我通常希望将使用R进行快速分析的结果粘贴到StackExchange站点中。这包括堆栈溢出上的r-标记、交叉验证,甚至包括认知科学堆栈交换这样的站点上的特定域分析(例如,对经合组织生命指数数据的快速分析)。
默认转换的问题:默认的标记输出knitr不适合包含在StackExchange上。我能看到的主要问题是
也就是说,这些块儿看起来是这样的:
```r一些代码
输出结果如下
一些输出
..。
还可能需要考虑其他具体问题,例如
问题
什么是一个很好的命令将R标记转换成标记(或HTML),适合简单地包含到堆栈交换站点中?
我认为理想的命令应该是一个单行命令,它接受一个formatted文件,并生成一个文件,在这个文件中,整个内容可以直接粘贴到Stack中,从而产生一个格式良好的问题或答案。
我以几个代码块、一个图形和一个等式作为测试示例,共享这个简单的rmd文件。
Initial the :将图像托管在imgur上可能会解决图像的问题。这可以通过在R文件中包含以下内容来完成,但是如果将该指令合并到某个一行命令中,可能会更简单。
``` {r }opts_knit$set(upload.fun = imgur_upload)
```可能值得考虑的是,HTML还是Markdown是粘贴到StackExchange的更好的格式。markdown包提供了很大的灵活性。
发布于 2012-06-17 03:44:30
下面是一个实用程序函数,可以让您开始使用它。它将自动上传设置为imgur,以及使用选项卡而不是围栏块来标记源代码。您可以增强此功能以添加其他有用的选项。
stackify <- function(rmd_file, ...){
require(knitr)
opts_knit$set(upload.fun = imgur_upload)
render_markdown(strict = TRUE)
out <- knit(rmd_file, ...)
return(invisible(out))
}更新:我在您的测试文件上测试了这个函数,它在启用了stats.stackexchange.com的mathjax上呈现得很好。
发布于 2012-06-17 12:01:24
尽管我仍然想阅读其他建议,但我还是以@Ramnath的答案为起点,将这个脚本合并在一起。它输出一个HTML片段,而不是Markdown。
Rscript -e 'rmd_file <- dir(pattern="rmd"); md_file <- sub("rmd", "md", rmd_file); html_file <- sub("rmd", "html", rmd_file); require(methods); require(knitr); require(markdown); opts_knit$set(upload.fun = imgur_upload); knit(rmd_file); markdownToHTML(md_file, html_file, options="fragment_only") 'rmd文件。我认为选择rmd文件可以以更复杂的方式完成。knitr和markdown包。methods包。结果看上去相当不错。它克服了空白行过多的问题。然而,输出并不是标记式的,这使得结果很难编辑。
发布于 2014-09-27 18:58:46
RStudio使用pandoc,因此您可以指定适合您需要的减价变体。在.Rmd文件开始时:
---
output:
md_document:
variant: markdown_strict+autolink_bare_uris
---然后,您应该能够将结果文件内容复制/粘贴到StackExchange中。
请参阅:Format.html#markdown-变体
https://stackoverflow.com/questions/11068603
复制相似问题