R MarkDown和R NoteBook之间的区别


136

我想在一个较高的水平之间有什么区别,了解R MarkdownR NoteBook。我知道它们是相互关联的,但我想弄清楚它们之间是如何关联的。我的理解是这样的:

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

RStudio新文件选项同时具有R MarkdownR NoteBook,选择两者中的任意一个都会打开R Markdown文件,但有微小差异。因此,只想弄清楚为什么会有两个选项,两者之间有什么区别?

在此处输入图片说明

我了解R笔记本是新推出的,R Markdown已经存在了一段时间。造成这种混乱的部分原因可能是因为我从未R Markdown在R Notebook引入之前就使用过,所以我的相关或更具体的问题是

与仅使用R MarkDown相比,R NoteBook有何不同之处?R NoteBook带来了哪些新功能?

我在网络搜索中获得的所有成功都表明R Notebook使用R Markdown,但是我没有发现两者之间有什么特别的帮助。


1
我使用knitr和LaTeX,所以我选择了R Sweave选项。没有使用RMarkdown,我只能说LaTex可以做任何事情,但是这种能力带来了复杂性和学习曲线。另外,这里有庞大的支持者社区,还有大量的书籍和资源。
lawyeR

1
谢谢@lawyeR。我并不担心资源,我可以很好地解决R和LaTeX问题。我确实想知道Sweave是什么,但我想以后再担心。感谢您对此的见解。现在,我只是在研究这些不同口味的R之间的顶级差异
。– PagMax,

5
并且,尽管您是阅读本手册的忠实拥护者,但如何阅读您实际投票的问题并针对问题中的具体问题进行回答,而不是从文档中丢弃材料?
PagMax

Answers:


55

据我了解,从我的设置来看,没有编码差异。区别在于渲染。文件扩展名是相同的。

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

在此处输入图片说明

如您所见,将显示“预览”选项,但您也可以将其编织为所需的任何格式。这样做时,它将添加到标题代码中。

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

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


2
作为附件,笔记本电脑存在UTC错误(考虑到重音和非英语字符)。它会搞砸了你的输出和您的文件...所以最好还是继续降价......这点仍在处理(据我所知)
R.普罗斯特

4
您的回答绝对是我认为使用几个月后的区别。让我吃惊的是R Notebook是一切,而R MarkDown才是。为什么继续使用R Markdown?您可以使用R笔记本直接“编织”而不是“预览”,并且您拥有R Markdown功能!
PagMax '18

2
我认为更多的是遗留问题,以免混淆已经使用Rmarkdown的人们。再加上当前版本的笔记本(或R)有我在上面提到的那个bug,这使我基本上无法使用它。根据我使用的方式(从rmardown到Notebook或从Notebook到rmarkdown),源文件中的文本也会被乱码替换。因此,我坚持降价促销,直到可以解决该问题为止。特别是笔记本预览对我来说不是那么有用,只是预览文本而没有绘图等。但是它具有很大的潜力。
R. Prost

41

最近,我发现了这篇文章,这使我在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时,在编织和预览中也有此功能:

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

希望你觉得它有用。


第二部分对理解差异特别有帮助!
gaelgarcia '18

15

从上面的答案中,最重要的区别之一还不是很清楚。

Bookdown书籍的 3.2.1.3节中:

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

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

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


7

区别在于,在R Notebok中,您可以编写Markdown和R代码块并直接执行它们并立即查看结果。它是一种适合自己的笔记本。

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

如果您想在此处获取有关knitr Package的更多信息。


2
好吧,这仍然不能解释Markdown与Notebook有何不同。(我知道笔记本使用markdown),但是R markdown在去年推出的R笔记本之前就存在。那么,R笔记本中有哪些新功能,这些功能以前仅使用R markdown不可能实现?
PagMax'5

3
@PagMax我认为区别在于从Rmarkdown文件呈现html输出的速度。当您想使用knitr生成R降价的html输出时,需要花费一些时间来“编织”所有代码并生成输出。为了加快速度,您可以通过将输出更改为“ html_notebook”,在Rstudio中使用Rnotebook“模式”以html格式查看Rmarkdown,它可以让您执行重新运行块,然后执行ctrl + shift + k(pc)和html刷新非常快。
chang02_23

1
我认为OP所面临的问题是2之间并没有太大的区别。我看到的主要区别(主要是通过阅读此处的答案而得到的)是RNB允许您执行R的单个块RMD要求您渲染或不渲染整个文件,并且独立地“按行”编码。想象一下,如果您有一个巨大的文件而只需要检查一点图表。RNB对此很有帮助。RMD可能需要很长时间才能呈现,因此很不方便。
布莱恩·戈金

@BryanGoggin您仍然可以在Rmd中执行独立的块。
PagMax '18

5

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

当你需要注释掉文本的一部分,RMarkdown刀片#在你的文本的每一行,而RNotebook地概括了单对之间的文本<!----->体征(如HTML文件)

也许有人会说,这是微不足道的区别。但是,正因为如此,我现在在所有Studio中始终使用RStudio中的R Notebook(而不是RMarkdown)。在其他所有方面,它们似乎都是相同的(至少出于我的需求,例如生成html和pdf)

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

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

4

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

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


2
我同意。“预览”功能是两者之间的唯一区别。我不知道为什么当Rnotebook具有Rmarkdown的所有功能以及附加的预览功能时,它们为什么仍挂在Rmarkdown上。
PagMax '18

4

相似之处: R笔记本和R Markdown文档非常相似。Markdown格式适用于两种文件类型。两种文件格式均可用于将代码与结果和注释进行通信。可以选择将创建的文档编织为HTML,PDF和WORD输出格式。如果代码中有错误,将不会生成输出。运行文件:CTRL + SHIFT + K并插入代码块:CTRL + ALT + I。

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

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

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

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


3

jrnold

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

---
ouptut: html_notebook
---

R markdown文件的YAML标头将包含以下行:

ouptut: html_document

将YAML标头从R笔记本复制到R降价文件后,将其更改为R降价文件,反之亦然。更具体地说,将的值更改为。output这是因为打开时的RStudio IDE和编织时的rmarkdown包使用文件的YAML标头,尤其output是YAML标头中的键值来确定文件的类型。是。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.