我试图在一个高水平上理解R Markdown和R NoteBook之间的区别。我知道它们是相互关联的,但我想弄清楚它们是如何相互关联的。我的理解是:

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

RStudio新文件选项有R Markdown和R NoteBook,选择其中任何一个打开R Markdown文件,但有微小的差异。我只是想弄清楚为什么会有两种选择这两者之间有什么区别?

我知道R笔记本电脑是新推出的,R Markdown也已经有一段时间了。部分困惑可能是因为在R笔记本推出之前我从未使用过R Markdown,所以我的相关或更具体的问题是

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

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


当前回答

最重要的区别之一并不是完全清楚从上面的答案。

从Bookdown书的3.2.1.3节:

在运行菜单中还有一个“重新启动R”和“运行所有块”项 在编辑器工具栏上,它为您提供了一个新的R会话 运行所有的块。这类似于Knit按钮 启动一个单独的R会话来编译文档。

换句话说,编织创建了一个新环境,并在那里运行所有代码。相比之下,R Notebook使用全局环境来呈现HTML文件。事实上,对于R Notebook,每次保存. rmd文档时都会对HTML文件进行更改。预览按钮只是在当前状态下打开HTML文件。没有代码运行。预览的字面意思是:它只是告诉你已经做了什么。

Why does this matter? For example, if an R Notebook .Rmd file is opened, but no code chunks are run, then the HTML file will render all the markdown and input code just fine, but no output will appear. Or, suppose you define some variable x in the Console, but not in a code chunk. If you try to use x somewhere in an R Notebook, it will work just fine. Previewing the HTML document will also work just fine. On the other hand, knitting the document will generate an "unknown variable" error because knitting runs all the code in a new environment, and the variable x was never defined in the markdown file anywhere.

其他回答

据我所知,从我的设置没有编码差异。 区别在于渲染。文件扩展名相同。

当你创建一个新的R Notebook时,它会在头文件的输出选项中添加html_notebook。这就是区别。然后,您可以快速预览渲染,而不必编织它。它还会在每次保存时刷新预览。然而,在预览中,你没有代码输出(没有图形,没有表格..)(至少在我的设置中)。输出中没有html_notebook,就没有按钮预览

正如你可以看到预览选项显示,但你也可以编织在任何你想要的格式。当您这样做时,它将把它添加到头代码中。

然而,如果你的标题中没有html_notebook,你只能编织你的代码来看看它看起来像什么(整本书)(请忽略我在图片中添加的额外默认选项)

下拉菜单中没有显示预览选项

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

注意,你可以在你的标题中混合几个输出选项,这样你就可以保持预览,并保持你的针织选项用于导出。

最重要的区别之一并不是完全清楚从上面的答案。

从Bookdown书的3.2.1.3节:

在运行菜单中还有一个“重新启动R”和“运行所有块”项 在编辑器工具栏上,它为您提供了一个新的R会话 运行所有的块。这类似于Knit按钮 启动一个单独的R会话来编译文档。

换句话说,编织创建了一个新环境,并在那里运行所有代码。相比之下,R Notebook使用全局环境来呈现HTML文件。事实上,对于R Notebook,每次保存. rmd文档时都会对HTML文件进行更改。预览按钮只是在当前状态下打开HTML文件。没有代码运行。预览的字面意思是:它只是告诉你已经做了什么。

Why does this matter? For example, if an R Notebook .Rmd file is opened, but no code chunks are run, then the HTML file will render all the markdown and input code just fine, but no output will appear. Or, suppose you define some variable x in the Console, but not in a code chunk. If you try to use x somewhere in an R Notebook, it will work just fine. Previewing the HTML document will also work just fine. On the other hand, knitting the document will generate an "unknown variable" error because knitting runs all the code in a new environment, and the variable x was never defined in the markdown file anywhere.

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

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

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

当你需要注释掉文本的一部分时, RMarkdown在文本的每一行中插入#,而 RNotebook简洁地封装了一对<!——,——>符号(在HTML文件中)

有人可能会说,差别太小了。然而,正因为如此,我现在总是在RStudio中使用R Notebook(而不是RMarkdown)来保存我的所有文档。在其他方面,它们似乎是一样的(至少对于我的需求,比如生成html和pdf)

否则,我的注释就会突然变成标题,如下所示:

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

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

以下是一些相关的句子:

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

当你在RStudio中创建R Notebook时,也有这个关于编织和预览的问题:

预览显示了编辑器内容的HTML副本。因此,与Knit不同,Preview不运行任何R代码块。相反,将显示上一次在编辑器中运行时的数据块的输出。

希望对你有用。