我试图从高层次了解R Markdown
和R NoteBook
之间的差异。我知道它们是相互关联的,但我想弄清楚它们是如何相关的。我的理解是:
我知道R笔记本确实是R Markdown文档,但我对术语感到困惑。
RStudio新文件选项包含R Markdown
和R NoteBook
,并且选择其中任何一个都会打开R Markdown
文件但存在细微差别。 所以只是想弄清楚为什么有两个选项,两者有什么区别?
我了解R笔记本是新推出的,R Markdown已经存在了一段时间。部分混淆可能是因为我在引入R Notebook之前从未使用R Markdown
所以我的相关或更具体的问题是
R NoteBook的用途与仅仅使用R MarkDown或R NoteBook带来的新功能有什么不同?
我在网络搜索上的所有点击都指出R笔记本使用R Markdown但我没有找到任何帮助,两者之间有什么明显不同。
答案 0 :(得分:28)
据我所知,从我的设置来看,没有编码差异。 不同之处在于渲染。文件扩展名是相同的。
制作新的R笔记本时,会在标题的输出选项中添加html_notebook
。这就是区别。然后,您可以快速预览渲染,而无需编织。它还会在您每次保存时刷新预览。但是在那个预览中你没有代码输出(没有数字,没有表格......)(至少在我的设置中)。如果输出中没有html_notebook
则没有按钮预览
正如您所见,预览选项会显示,但您也可以使用任何所需的格式进行编织。当你这样做时,它会将它添加到标题代码中。
但是,如果您的标题中没有html_notebook
,那么您只能编码代码以查看它的外观(整本书)(请忽略我添加的其他默认选项)图片)
并且预览选项不会显示在下拉菜单中
否则它的工作方式相同。对于某些默认配置,默认情况下,输出也会隐藏在代码部分中。
请注意,您可以在标题中混合多个输出选项,以便您可以保留预览并保留导出的编织选项。
答案 1 :(得分:20)
最近我发现这篇文章让我明白R Markdown vs. R Notebook问题。 http://uc-r.github.io/r_notebook
以下是一些相关的内容:
编写R Notebook文档与编写R Markdown文档没什么不同。文本和代码块语法与您在R Markdown教程中学到的内容没有区别。主要区别在于R笔记本的交互性。主要是在R Markdown文档中执行块时,所有代码一次性发送到控制台,但在R笔记本中,一次只发送一行 。这允许在行引发错误时停止执行。
在RStudio中创建R笔记本时,还有针对编织与预览的对比:
预览会显示编辑器内容的呈现HTML副本。因此,与 Knit 不同,预览不会运行任何R代码块。而是显示上次在编辑器中运行时块的输出。
希望你觉得它很有用。
答案 2 :(得分:4)
不同之处在于,在R Notebok中,您可以编写Markdown和R-code Chunks并直接执行它们并立即查看结果。它本身就是一种笔记本。
R Markdown可以在html,pdf或单词Document中创建漂亮的输出。结合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.
答案 3 :(得分:3)
http://rmarkdown.rstudio.com/r_notebooks.html#notebook_file
“普通R Markdown文档是”编织“,但笔记本是”预览“。 虽然笔记本预览看起来类似于渲染的R Markdown 文档,笔记本预览不执行任何R代码 块“
答案 4 :(得分:2)
我找到了一个实际的区别:
当您需要注释掉部分文字时,
RMarkdown在文本的每一行插入#
,而
RNotebook巧妙地将文本封装在一对<!--
,--->
符号之间(如在html文件中)
有人可能会说,这是一个微不足道的差异。但是,正因为如此,我现在总是在RStudio中使用R Notebook(而不是RMarkdown)来获取所有文档。在其他一切方面,它们看起来都是一样的(至少根据我的需要,例如生成HTML和pdf&#39;)
否则,我的评论会突然变成标题,如下所示:
# This part is commented out, but will show as Heading 1 font text
答案 5 :(得分:2)
从以上答案中看不出最重要的区别之一。
摘自Bookdown book第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
的字面意思是:它只是向您显示已完成的操作。
为什么这很重要?例如,如果打开了R Notebook .Rmd
文件,但是没有运行任何代码块,则HTML文件将呈现所有的标记和输入代码,但不会出现任何输出。或者,假设您在控制台中定义了一些变量x
,但未在代码块中定义。如果您尝试在R Notebook中的某个地方使用x
,它将很好用。预览HTML文档也可以正常工作。另一方面,编织文档将生成“未知变量”错误,因为编织会在新环境中运行所有代码,并且变量x
从未在markdown文件中的任何位置定义。
答案 6 :(得分:1)
来自jrnold:
R笔记本文件显示编辑器内部的输出,同时隐藏控制台。 R markdown文件显示控制台内部的输出,而不显示编辑器内部的输出。它们的YAML标头的输出值不同。
R笔记本的YAML标头将包含该行,
>>>>print(str2)
'learningpython'
R markdown文件的YAML标头将包含该行
>>>>print(str1)
learningpython
将YAML标头从R笔记本复制到R降价文件后,会将其更改为R降价文件,反之亦然。更具体地说,将---
ouptut: html_notebook
---
的值更改为这是因为打开时的RStudio IDE和编织时的 rmarkdown 包使用文件的YAML标头,尤其是{ {1}}键入YAML标头,以确定它是什么类型的文档。