R MarkDown 和 R NoteBook 的区别

Difference between R MarkDown and R NoteBook

我试图从更高层次理解 R MarkdownR NoteBook 之间的区别。我知道它们是相互关联的,但我想弄清楚它们是如何相关的。我的理解是这样的:

我知道 R Notebooks 实际上是 R Markdown 文档,但我对术语感到困惑。

RStudio 新文件选项同时具有 R MarkdownR NoteBook,选择它们中的任何一个都会打开一个 R Markdown 文件,但有细微差别。 所以只是想弄清楚为什么会有两个选项,两者之间有什么区别?

我知道 R Notebooks 是新推出的,R Markdown 已经有一段时间了。部分混淆可能是因为在引入 R Notebook 之前我从未使用过 R Markdown,所以我的相关或更具体的问题是

R NoteBook 与仅使用 R MarkDown 有何不同,或者 R NoteBook 带来了哪些新功能?

我在网络搜索上的所有点击都指向 R Notebook 使用 R Markdown,但我没有找到关于两者之间具体区别的任何帮助。

不同之处在于,在 R Notebok 中,您可以编写 Markdown 和 R-code Chunks 并直接执行它们并立即看到结果。它是您自己的笔记本。

R Markdown 可以在 html、pdf 或 word 文档中创建漂亮的输出。结合 Markdown 和 R-Code-Chunks。 A short introduction and motivation can be found here.

If you want to get more infos about the the knitr Package klick here.

http://rmarkdown.rstudio.com/r_notebooks.html#notebook_file

"普通的 R Markdown 文档是 "knit",但 notebooks 是 "previewed"。 虽然笔记本预览看起来类似于渲染的 R Markdown 文档,notebook 预览不执行任何 R 代码 大块

这是我发现的一个实际差异:

当您需要注释掉部分文字时, RMarkdown 在文本的每一行插入 #,而 RNotebook 巧妙地将文本封装在一对 <!-- , ---> 符号之间(如 html 文件)

有人可能会说,多么微不足道的区别。然而,正因为如此,我现在总是在 RStudio 中使用 R Notebook(而不是 RMarkdown)来处理我的所有文档。在其他所有方面,它们看起来都是一样的(至少对于我的需要,例如生成 html 和 pdf)

不然我的评论突然变成了headers,如下图:

# This part is commented out, but will show as Heading 1 font text

据我了解和我的设置,没有编码差异。 不同之处在于渲染。文件扩展名相同。

当您制作新的 R Notebook 时,它会在 header 的输出选项中添加 html_notebook。这就是区别。然后您可以快速预览渲染而无需编织它。每次保存时它还会刷新预览。但是在那个预览中你没有代码输出(没有数字,没有表格..)(至少在我的设置中)。如果输出中没有 html_notebook,则没有按钮预览

如您所见,出现了预览选项,但您也可以将其编织成您想要的任何格式。当您这样做时,它将把它添加到 header 代码中。

然而,如果你的 header 中没有那个 html_notebook,你只能编织你的代码看看它的样子(整本书)(请忽略额外的默认选项我把图片放在一起)

并且预览选项未显示在下拉菜单中

否则效果一样。对于某些默认配置,输出也默认隐藏在代码部分。

请注意,您可以在 header 中混合使用多个输出选项,以便您可以保留预览并保留编织选项以供导出。

最近我发现了这个 post 这让我清楚地了解了 R Markdown 与 R Notebook 的问题。 http://uc-r.github.io/r_notebook

以下是一些相关的行:

Writing an R Notebook document is no different than writing an R Markdown document. The text and code chunk syntax does not differ from what you learned in the R Markdown tutorial. The primary difference is in the interativeness of an R Notebook. Primarily that when executing chunks in an R Markdown document, all the code is sent to the console at once, but in an R Notebook, only one line at a time is sent. This allows execution to stop if a line raises an error.

当您在 RStudio 中创建 R Notebook 时,在 knit 与 preview 上也有这个:

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

希望您觉得它有用。

来自 jrnold

R 笔记本文件显示编辑器内的输出,同时隐藏控制台。 R markdown 文件显示控制台内的输出,而不显示编辑器内的输出。它们在 YAML headers.
中的输出值不同 R 笔记本的 YAML header 将包含行,

---
ouptut: html_notebook
---

R markdown 文件的 YAML header 将包含

这一行
ouptut: html_document

将 YAML header 从 R notebook 复制到 R markdown 文件会将其更改为 R markdown 文件,并且 vice-versa。更具体地说,将output的值改为 这是因为打开时的RStudio IDE和编织时的rmarkdown包使用的YAML header一个文件,特别是 YAML header 中 output 键的值,以确定它是什么类型的文档。

最重要的区别之一并未从上述答案中完全清楚。

来自 Bookdown book 的第 3.2.1.3 节:

There is also a Restart R and Run All Chunks item in the Run menu on the editor toolbar, which gives you a fresh R session prior to running all the chunks. This is similar to the Knit button, which launches a separate R session to compile the document.

换句话说,knitting 创造了一个新的环境,运行所有的代码都在那里。相比之下,R 笔记本按原样使用全局环境来呈现 HTML 文件。事实上,对于 R Notebook,每次保存 .Rmd 文档时都会对 HTML 文件进行更改。 Preview 按钮仅以当前状态打开 HTML 文件。没有代码是运行。 Preview 字面意思就是它所说的:它只是向您展示已经完成的工作。

为什么这很重要?例如,如果打开 R Notebook .Rmd 文件,但没有代码块 运行,则 HTML 文件将呈现所有降价和输入代码,但没有输出出现。或者,假设您在控制台中定义了一些变量 x,但不在代码块中。如果您尝试在 R Notebook 的某处使用 x,它会工作得很好。预览 HTML 文档也可以正常工作。另一方面,编织文档会产生 "unknown variable" 错误,因为编织 运行 是新环境中的所有代码,并且变量 x 从未在任何地方的 markdown 文件中定义。

相似点: R notebook 和 R Markdown 文档非常相似。 Markdown 格式适用于两种文件类型。这两种文件格式都可用于与其他人交流代码以及结果和评论。可以选择将创建的文档编织成 HTML、PDF 和 WORD 输出格式。如果代码中有错误,则不会生成输出。要 运行 文件:CTRL+SHIFT+K 并插入代码块:CTRL+ALT+I。

R Markdown 文档: Rmd 文档可以通过向导进行配置,并具有可复制文档、演示幻灯片、闪亮应用程序等选项以及从模板创建文档的选项.如果更改代码,则会在 Rmd 输出中执行输出。它不提供预览文档的选项。 YAML header 的输出格式为: output: html_document

R 笔记本文档: R nb 文档直接启动,没有出现向导(如.RMD 的情况)。除了笔记本文件,还会生成一个扩展名为 *.nb.html 的附加 html 文件。笔记本有预览选项。如果更改或编辑了任何代码,则不会显示新的输出。输出显示在代码编辑器本身中。无论旧输出是什么,它都只会被渲染。代码更改不会生成新的输出。为了显示代码输出,我们需要执行块,然后它会出现在输出中。 YAML header 的输出为: output: html_notebook

YAML header :如果我们将 YAML header 从一个文件更改为另一个文件,则会更改文档的类型。例如,您有一个 R 笔记本,其中 YAML header 作为 html_notebook。如果您更改 YAML header,您的 R 笔记本将转换为 R Markdown 文档。

如果您必须选择一个,请选择 RMarkdown 文档,因为它提供了更多控制并在编写文档后立即更新文档。

R 文件自然包含 R 编程语言代码。

另一方面,R Markdown 是一个嵌入了 R 代码块的 Markdown 文件(“Markdown 是一种轻量级标记语言,用于使用纯文本编辑器创建格式化文本”。net/projects/markdown)在里面。
R 代码块提供 运行 整个块或 RStudio 中的单行选项。更重要的是,当您导出 R Markdown 文件时,您会看到 Markdown 文本显示为文本,而 R 代码块是灰色的,默认情况下显示为代码块。 RMarkdown 旨在使 R 更加动态,尤其是为了创建报告。 R Markdown 已被科学界广泛用于生成报告。