Knitr:spin - 如何在不手动添加每一行的情况下添加文本?

Knitr:spin - how to add text without manually adding #' every line?

我的理解是,knitr:spin 允许我使用普通的、普通的、常规的好 R 脚本,同时保持生成理解 markdown 语法的完整文档的能力。 (参见 https://yihui.name/knitr/demo/stitch/

确实,Rstudio 中的 rmarkdown 功能虽然超级简洁,但实际上很麻烦,因为

总而言之,这 非常 限制...有关相关讨论,请参见此处 Is there a way to knitr markdown straight out of your workspace using RStudio?

如此处所讨论 (http://deanattali.com/2015/03/24/knitrs-best-hidden-gem-spin/),spin 似乎是解决方案。

确实,knitr:spin 语法如下所示:

#' This is a special R script which can be used to generate a report. You can
#' write normal text in roxygen comments.
#'
#' First we set up some options (you do not have to do this):

#+ setup, include=FALSE
library(knitr)

在常规工作区!

BUT 请注意每行文本如何以 #'.

开头

我的问题是在每行文本后添加 #' 也非常低效。有没有办法自动执行此操作?

假设我 select 一大块文本,rstudio 每行添加这个 #'?也许本着与评论一大块代码行相同的精神?

我是不是漏掉了什么?

谢谢!

使用 RMarkdown 文档,你可以这样写:

As you can see I have some fancy code below, and text right here.

```{r setup}
# R code here
library(ggplot2)
```

And I have more text here...

This gist 快速介绍了 RMarkdown 和 knitr 的功能。我认为你并不完全理解 RMarkdown 到底是什么,它是一个中间夹杂着 R 的 markdown 文档,而不是(如你所说)中间夹杂着 markdown 的 R 脚本。


编辑:对于那些反对投票的人,请阅读下面的评论...OP 没有说明他之前使用的是 spin

在 RStudio v 1.1.28 中,当我在机器上的 *.R 文件中按回车键时,以 #' 开始的一行会导致下一行以 #' 开始(Ubuntu Linux 16.04LTS).

所以只要你用它开始一个文本块,它就会继续。但是对于以前存在的 R 脚本,看起来你必须使用 find -> replace,或者编写一个函数来修改所需的文件,这在一个非常简单的测试中对我有用。

comment_replace <- function(in_file, out_file = in_file){
  in_text <- scan(file = in_file, what = character(), sep = "\n")
  out_text <- gsub("^# ", "#' ", in_text)
  cat(out_text, sep = "\n", file = out_file)
}

我会注意到,这个函数 不会 检查先前存在的 #',你会想要构建它。我修改了它,所以它不应该通过在正则表达式中添加 space 来替换它们太多。