什么命令将knitr R Markdown转换为Stack-Exchange友好的Markdown?

Jer*_*lim 17 r knitr

动机:我经常想使用R Markdown将快速分析的结果粘贴到StackExchange站点.这包括对堆栈溢出R-标签,交叉验证,或者像网站甚至一个特定领域的分析,认知科学堆栈交易所(例如,这种快速分析OECD寿命指数数据).

默认转换的问题:默认的降价输出knitr不适合列入StackExchange.我能看到的主要问题是

  • 图像以本地硬盘驱动器为参考
  • 代码块不是制表符或空格缩进; 相反,他们使用github风格Markdown(即没有缩进)

即,块看起来像这样:

```r
some code
```
Run Code Online (Sandbox Code Playgroud)

和输出看起来像这样

```
## some output
## ...
```
Run Code Online (Sandbox Code Playgroud)

可能还有其他特定问题需要考虑,例如

  • 确保正确包含表格
  • 确保方程式正确传递给支持MathJax的站点,如Cross Validated和Cognitive Science Stack Exchange.

什么是将R Markdown转换为Markdown(或HTML)的良好命令,适合简单地包含在Stack Exchange站点中?

我认为一个理想的命令是一个单行程序,它接受一个R Markdown文件并生成一个文件,其中整个内容可以直接粘贴到Stack Exchange中,以产生格式正确的问题或答案.

我将这个简单的rmd文件与一些代码块,一个图形和一个等式作为测试示例共享.

最初的想法:在imgur上托管图像可能会解决图像问题.这可以通过在R Markdown文件中包含以下内容来完成,但如果将此指令合并到某个单线程命令中则可能更简单.

``` {r }
opts_knit$set(upload.fun = imgur_upload) 
````
Run Code Online (Sandbox Code Playgroud)

可能值得考虑HTML或Markdown是否是粘贴到StackExchange的更好格式.该markdown软件包提供了很大的灵活性.

Ram*_*ath 13

这是一个实用功能,可以帮助您入门.它将自动上传设置为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))
}
Run Code Online (Sandbox Code Playgroud)

更新:我在你的测试文件上测试了这个函数,它在mathjax启用了stats.stackexchange.com上呈现得很好.