193

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

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

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

在此处输入图像描述

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

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

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

4

9 回答 9

86

据我了解和我的设置,没有编码差异。区别在于渲染。文件扩展名是一样的。

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

在此处输入图像描述

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

在此处输入图像描述

但是,如果您的标题中没有它html_notebook,您只能编织您的代码以查看它的外观(整本书)(请忽略我在图片中添加的附加默认选项)

在此处输入图像描述

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

在此处输入图像描述

否则它的工作原理相同。对于某些默认配置,输出也默认隐藏在代码部分中。

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

于 2018-02-07T10:00:43.157 回答
75

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

以下是一些相关的行:

编写 R Notebook 文档与编写 R Markdown 文档没有什么不同。文本和代码块语法与您在 R Markdown 教程中学到的没有什么不同。主要区别在于 R Notebook 的交互性。主要是在 R Markdown 文档中执行块时,所有代码都会一次发送到控制台,但在 R Notebook 中,一次只发送一行。如果一行出现错误,这允许执行停止。

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

预览会显示编辑器内容的呈现 HTML 副本。因此,与Knit不同,Preview不运行任何 R 代码块。而是显示上次在编辑器中运行时块的输出。

希望你觉得它有用。

于 2018-03-04T13:48:29.550 回答
27

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

Bookdown 书的第 3.2.1.3 节:

编辑器工具栏上的菜单中还有一个Restart R and Run All Chunks项目Run,它可以在运行所有块之前为您提供一个全新的 R 会话。这类似于Knit按钮,它启动一个单独的 R 会话来编译文档。

换句话说,编织创建了一个新环境并在那里运行所有代码。相比之下,R Notebook 使用 Global Environment 来呈现 HTML 文件。事实上,对于 R Notebook,每次.Rmd保存文档时都会更改 HTML 文件。该Preview按钮仅以当前状态打开 HTML 文件。没有代码运行。Preview字面意思是它所说的:它只是向您展示已经完成的事情。

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

于 2018-08-06T03:16:32.397 回答
11

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

R Markdown 可以在 html、pdf 或 word 文档中创建漂亮的输出。结合 Markdown 和 R-Code-Chunks。可以在这里找到简短的介绍和动机

如果您想获取有关 knitr 包的更多信息,请单击此处。

于 2017-05-10T16:51:16.150 回答
8

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

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

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

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

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

于 2018-09-13T10:37:38.273 回答
7

这是我发现的一个实际区别:

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

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

否则,我的评论会突然变成标题,如下所示:

# This part is commented out, but will show as Heading 1 font text
于 2017-11-25T22:30:45.217 回答
4

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

“普通的 R Markdown 文档是“编织”的,但笔记本是“预览的”。虽然笔记本预览看起来类似于渲染的 R Markdown 文档,但笔记本预览不执行任何 R 代码块“

于 2017-09-02T13:49:08.533 回答
3

jrnold

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

---
ouptut: html_notebook
---

R 降价文件的 YAML 标头将包含以下行,

ouptut: html_document

将 YAML 标头从 R 笔记本复制到 R markdown 文件会将其更改为 R markdown 文件,反之亦然。更具体地说,将值更改output为 这是因为打开时的 RStudio IDE 和编织时的rmarkdown包使用文件的 YAML 标头,特别是outputYAML 标头中键的值,以确定它是什么类型的文档是。

于 2018-07-31T00:05:46.147 回答
0

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

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

于 2022-01-11T02:09:28.180 回答