Tutorial for R Markdown and R Notebook

In this presentation, we will give a brief introduction on R Markdown and R Notebooks.

This part of tutorial is adapted from the introduction of R Studio on R Markdown and R Notebooks.

Overview

R Markdown is a text file type that has the extension .Rmd.

It provides a reproducible document framework for data science, and you can use a single R Markdown file to both

  • save and execute codes
  • generate high quality reports that can be shared with an audience

When you open the R Markdown file in the RStudio IDE, it becomes an R Notebook interface.

R Notebook is an R Markdown document with chunks that can be executed independently and interactively. Any R Markdown document can be used as a notebook, and all R Notebooks can be rendered to other R Markdown document types. A notebook can therefore be thought of as a special execution mode for R Markdown documents.

Drawing

Creating an R Notebook

You can create a new notebook in RStudio with the menu command File -> New File -> R Notebook, or by using the html_notebook output type in your document’s YAML header.

Drawing

After that, you will have an R Notebook with one code chunk.

Drawing

Markdown Basics

Format the text in your R Markdown file with Pandoc’s Markdown, a set of markup annotations for plain text files. When you render your file, Pandoc transforms the marked up text into formatted text in your final file format: Drawing

Inserting Chunks

In each chunk, the codes can be executed independently, and the output will appear beneath the chunk.

New chunks can be inserted quickly using the keyboard shortcut Ctrl + Alt + I (OS X: Cmd + Option + I), or via the Add Chunk command in the editor toolbar.

Drawing

Chunk Options

Chunk output can be customized with knitr options, arguments set in the {} of a chunk header. Above, we use five arguments:

  • include = FALSE prevents code and results from appearing in the finished file. R Markdown still runs the code in the chunk, and the results can be used by other chunks.
  • echo = FALSE prevents code, but not the results from appearing in the finished file. This is a useful way to embed figures.
  • message = FALSE prevents messages that are generated by code from appearing in the finished file.
  • warning = FALSE prevents warnings that are generated by code from appearing in the finished.
  • fig.cap = "..." adds a caption to graphical results.

Also, you can process many languages in code chunks besides R. Some of the available language engines include:

  • Python
  • SQL
  • Bash
  • Stan
  • JavaScript

To process a code chunk using an alternate language engine, replace the r at the start of your chunk declaration with the name of the language: Drawing

Saving Your R Notebook

When you finish your R Notebook, you can choose to save the .Rmd file. At the same time, an .nb.html file is created alongside it. This file is a self-contained HTML file which contains both a rendered copy of the notebook with all current chunk outputs (suitable for display on a website) and a copy of the notebook .Rmd itself.

Also, the RStudio IDE knit button allows you to render your R Notebook to other formats like .pdf and .docx. You can render to additional formats by clicking the dropdown menu beside the knit button: Drawing

Here is how it works:

Drawing

References

  1. R Markdown from R Studio http://rmarkdown.rstudio.com/lesson-1.html

  2. R Notebook from R Studio http://rmarkdown.rstudio.com/r_notebooks.html

LS0tCnRpdGxlOiAnJwpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKICB3b3JkX2RvY3VtZW50OiBkZWZhdWx0Ci0tLQojIyBUdXRvcmlhbCBmb3IgUiBNYXJrZG93biBhbmQgUiBOb3RlYm9vawoKSW4gdGhpcyBwcmVzZW50YXRpb24sIHdlIHdpbGwgZ2l2ZSBhIGJyaWVmIGludHJvZHVjdGlvbiBvbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgIGFuZCBbUiBOb3RlYm9va3NdKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20vcl9ub3RlYm9va3MuaHRtbCkuCgpUaGlzIHBhcnQgb2YgdHV0b3JpYWwgaXMgYWRhcHRlZCBmcm9tIHRoZSBpbnRyb2R1Y3Rpb24gb2YgUiBTdHVkaW8gb24gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pICBhbmQgW1IgTm90ZWJvb2tzXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tL3Jfbm90ZWJvb2tzLmh0bWwpLgoKIyMjIE92ZXJ2aWV3CgoqKlIgTWFya2Rvd24qKiBpcyBhIHRleHQgZmlsZSB0eXBlIHRoYXQgaGFzIHRoZSBleHRlbnNpb24gYC5SbWRgLiAKCkl0IHByb3ZpZGVzIGEgcmVwcm9kdWNpYmxlIGRvY3VtZW50IGZyYW1ld29yayBmb3IgZGF0YSBzY2llbmNlLCBhbmQgeW91IGNhbiB1c2UgYSBzaW5nbGUgUiBNYXJrZG93biBmaWxlIHRvIGJvdGgKCi0gc2F2ZSBhbmQgZXhlY3V0ZSBjb2RlcwotIGdlbmVyYXRlIGhpZ2ggcXVhbGl0eSByZXBvcnRzIHRoYXQgY2FuIGJlIHNoYXJlZCB3aXRoIGFuIGF1ZGllbmNlCgpXaGVuIHlvdSBvcGVuIHRoZSBSIE1hcmtkb3duIGZpbGUgaW4gdGhlIFJTdHVkaW8gSURFLCBpdCBiZWNvbWVzIGFuIFIgTm90ZWJvb2sgaW50ZXJmYWNlLiAKCioqUiBOb3RlYm9vayoqIGlzIGFuIFIgTWFya2Rvd24gZG9jdW1lbnQgd2l0aCBjaHVua3MgdGhhdCBjYW4gYmUgZXhlY3V0ZWQgaW5kZXBlbmRlbnRseSBhbmQgaW50ZXJhY3RpdmVseS4gQW55IFIgTWFya2Rvd24gZG9jdW1lbnQgY2FuIGJlIHVzZWQgYXMgYSBub3RlYm9vaywgYW5kIGFsbCBSIE5vdGVib29rcyBjYW4gYmUgcmVuZGVyZWQgdG8gb3RoZXIgUiBNYXJrZG93biBkb2N1bWVudCB0eXBlcy4gQSBub3RlYm9vayBjYW4gdGhlcmVmb3JlIGJlIHRob3VnaHQgb2YgYXMgYSBzcGVjaWFsIGV4ZWN1dGlvbiBtb2RlIGZvciBSIE1hcmtkb3duIGRvY3VtZW50cy4KCjxpbWcgc3JjPSJodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tL2xlc3Nvbi1pbWFnZXMvaG93LTEtZmlsZS5wbmciIGFsdD0iRHJhd2luZyIgc3R5bGU9IndpZHRoOiA4MDBweDsiLz4KCiMjIyBDcmVhdGluZyBhbiBSIE5vdGVib29rCllvdSBjYW4gY3JlYXRlIGEgbmV3IG5vdGVib29rIGluIFJTdHVkaW8gd2l0aCB0aGUgbWVudSBjb21tYW5kICpGaWxlIC0+IE5ldyBGaWxlIC0+IFIgTm90ZWJvb2sqLCBvciBieSB1c2luZyB0aGUgaHRtbF9ub3RlYm9vayBvdXRwdXQgdHlwZSBpbiB5b3VyIGRvY3VtZW504oCZcyBZQU1MIGhlYWRlci4KCjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vQ2hlbmdsaWFuZ1RhbmcvVGVtcC1JbWFnZXMtZm9yLTIwMTctU3ByaW5nL21hc3Rlci9TY3JlZW5zaG90XzEucG5nIiBhbHQ9IkRyYXdpbmciIHN0eWxlPSJ3aWR0aDogNDUwcHg7Ii8+CgpBZnRlciB0aGF0LCB5b3Ugd2lsbCBoYXZlIGFuIFIgTm90ZWJvb2sgd2l0aCBvbmUgY29kZSBjaHVuay4KCjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vQ2hlbmdsaWFuZ1RhbmcvVGVtcC1JbWFnZXMtZm9yLTIwMTctU3ByaW5nL21hc3Rlci9TY3JlZW5zaG90XzIucG5nIiBhbHQ9IkRyYXdpbmciIHN0eWxlPSJ3aWR0aDogODAwcHg7Ii8+CgojIyMgTWFya2Rvd24gQmFzaWNzCkZvcm1hdCB0aGUgdGV4dCBpbiB5b3VyIFIgTWFya2Rvd24gZmlsZSB3aXRoIFBhbmRvY+KAmXMgTWFya2Rvd24sIGEgc2V0IG9mIG1hcmt1cCBhbm5vdGF0aW9ucyBmb3IgcGxhaW4gdGV4dCBmaWxlcy4gV2hlbiB5b3UgcmVuZGVyIHlvdXIgZmlsZSwgUGFuZG9jIHRyYW5zZm9ybXMgdGhlIG1hcmtlZCB1cCB0ZXh0IGludG8gZm9ybWF0dGVkIHRleHQgaW4geW91ciBmaW5hbCBmaWxlIGZvcm1hdDoKPGltZyBzcmM9Imh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20vbGVzc29uLWltYWdlcy9tYXJrZG93bi0xLW1hcmt1cC5wbmciIGFsdD0iRHJhd2luZyIgc3R5bGU9IndpZHRoOiA4MDBweDsiLz4KCiMjIyBJbnNlcnRpbmcgQ2h1bmtzCkluIGVhY2ggY2h1bmssIHRoZSBjb2RlcyBjYW4gYmUgZXhlY3V0ZWQgaW5kZXBlbmRlbnRseSwgYW5kIHRoZSBvdXRwdXQgd2lsbCBhcHBlYXIgYmVuZWF0aCB0aGUgY2h1bmsuIAoKTmV3IGNodW5rcyBjYW4gYmUgaW5zZXJ0ZWQgcXVpY2tseSB1c2luZyB0aGUga2V5Ym9hcmQgc2hvcnRjdXQgKipDdHJsICsgQWx0ICsgSSoqIChPUyBYOiAqKkNtZCArIE9wdGlvbiArIEkqKiksIG9yIHZpYSB0aGUgKipBZGQgQ2h1bmsqKiBjb21tYW5kIGluIHRoZSBlZGl0b3IgdG9vbGJhci4KCjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vQ2hlbmdsaWFuZ1RhbmcvVGVtcC1JbWFnZXMtZm9yLTIwMTctU3ByaW5nL21hc3Rlci9TY3JlZW5zaG90XzMucG5nIiBhbHQ9IkRyYXdpbmciIHN0eWxlPSJ3aWR0aDogODAwcHg7Ii8+CgoKIyMjIENodW5rIE9wdGlvbnMKQ2h1bmsgb3V0cHV0IGNhbiBiZSBjdXN0b21pemVkIHdpdGgga25pdHIgb3B0aW9ucywgYXJndW1lbnRzIHNldCBpbiB0aGUgYHt9YCBvZiBhIGNodW5rIGhlYWRlci4gQWJvdmUsIHdlIHVzZSBmaXZlIGFyZ3VtZW50czoKCi0gYGluY2x1ZGUgPSBGQUxTRWAgcHJldmVudHMgY29kZSBhbmQgcmVzdWx0cyBmcm9tIGFwcGVhcmluZyBpbiB0aGUgZmluaXNoZWQgZmlsZS4gUiBNYXJrZG93biBzdGlsbCBydW5zIHRoZSBjb2RlIGluIHRoZSBjaHVuaywgYW5kIHRoZSByZXN1bHRzIGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNodW5rcy4KLSBgZWNobyA9IEZBTFNFYCBwcmV2ZW50cyBjb2RlLCBidXQgbm90IHRoZSByZXN1bHRzIGZyb20gYXBwZWFyaW5nIGluIHRoZSBmaW5pc2hlZCBmaWxlLiBUaGlzIGlzIGEgdXNlZnVsIHdheSB0byBlbWJlZCBmaWd1cmVzLgotIGBtZXNzYWdlID0gRkFMU0VgIHByZXZlbnRzIG1lc3NhZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCBieSBjb2RlIGZyb20gYXBwZWFyaW5nIGluIHRoZSBmaW5pc2hlZCBmaWxlLgotIGB3YXJuaW5nID0gRkFMU0VgIHByZXZlbnRzIHdhcm5pbmdzIHRoYXQgYXJlIGdlbmVyYXRlZCBieSBjb2RlIGZyb20gYXBwZWFyaW5nIGluIHRoZSBmaW5pc2hlZC4KLSBgZmlnLmNhcCA9ICIuLi4iYCBhZGRzIGEgY2FwdGlvbiB0byBncmFwaGljYWwgcmVzdWx0cy4KCkFsc28sIHlvdSBjYW4gcHJvY2VzcyBtYW55IGxhbmd1YWdlcyBpbiBjb2RlIGNodW5rcyBiZXNpZGVzIFIuIFNvbWUgb2YgdGhlIGF2YWlsYWJsZSBsYW5ndWFnZSBlbmdpbmVzIGluY2x1ZGU6CgotIFB5dGhvbgotIFNRTAotIEJhc2gKLSBTdGFuCi0gSmF2YVNjcmlwdAoKVG8gcHJvY2VzcyBhIGNvZGUgY2h1bmsgdXNpbmcgYW4gYWx0ZXJuYXRlIGxhbmd1YWdlIGVuZ2luZSwgcmVwbGFjZSB0aGUgYHJgIGF0IHRoZSBzdGFydCBvZiB5b3VyIGNodW5rIGRlY2xhcmF0aW9uIHdpdGggdGhlIG5hbWUgb2YgdGhlIGxhbmd1YWdlOgo8aW1nIHNyYz0iaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbS9sZXNzb24taW1hZ2VzL2xhbmd1YWdlcy0xLWRlbW9zLnBuZyIgYWx0PSJEcmF3aW5nIiBzdHlsZT0id2lkdGg6IDgwMHB4OyIvPgoKIyMjIFNhdmluZyBZb3VyIFIgTm90ZWJvb2sKV2hlbiB5b3UgZmluaXNoIHlvdXIgUiBOb3RlYm9vaywgeW91IGNhbiBjaG9vc2UgdG8gc2F2ZSB0aGUgYC5SbWRgIGZpbGUuIEF0IHRoZSBzYW1lIHRpbWUsIGFuIGAubmIuaHRtbGAgZmlsZSBpcyBjcmVhdGVkIGFsb25nc2lkZSBpdC4gVGhpcyBmaWxlIGlzIGEgc2VsZi1jb250YWluZWQgSFRNTCBmaWxlIHdoaWNoIGNvbnRhaW5zIGJvdGggYSByZW5kZXJlZCBjb3B5IG9mIHRoZSBub3RlYm9vayB3aXRoIGFsbCBjdXJyZW50IGNodW5rIG91dHB1dHMgKHN1aXRhYmxlIGZvciBkaXNwbGF5IG9uIGEgd2Vic2l0ZSkgYW5kIGEgY29weSBvZiB0aGUgbm90ZWJvb2sgYC5SbWRgIGl0c2VsZi4KCkFsc28sIHRoZSBSU3R1ZGlvIElERSBrbml0IGJ1dHRvbiBhbGxvd3MgeW91IHRvIHJlbmRlciB5b3VyIFIgTm90ZWJvb2sgdG8gb3RoZXIgZm9ybWF0cyBsaWtlIGAucGRmYCBhbmQgYC5kb2N4YC4gWW91IGNhbiByZW5kZXIgdG8gYWRkaXRpb25hbCBmb3JtYXRzIGJ5IGNsaWNraW5nIHRoZSBkcm9wZG93biBtZW51IGJlc2lkZSB0aGUga25pdCBidXR0b246CjxpbWcgc3JjPSJodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tL2xlc3Nvbi1pbWFnZXMvb3V0cHV0cy0yLXBkZi5wbmciIGFsdD0iRHJhd2luZyIgc3R5bGU9IndpZHRoOiA4MDBweDsiLz4KCkhlcmUgaXMgaG93IGl0IHdvcmtzOgoKPGltZyBzcmM9Imh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20vbGVzc29uLWltYWdlcy9STWFya2Rvd25GbG93LnBuZyIgYWx0PSJEcmF3aW5nIiBzdHlsZT0id2lkdGg6IDgwMHB4OyIvPgoKCiMjIyBSZWZlcmVuY2VzCjEuIFIgTWFya2Rvd24gZnJvbSBSIFN0dWRpbyBbaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbS9sZXNzb24tMS5odG1sXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tL2xlc3Nvbi0xLmh0bWwpCgoyLiBSIE5vdGVib29rIGZyb20gUiBTdHVkaW8gW2h0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20vcl9ub3RlYm9va3MuaHRtbF0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbS9yX25vdGVib29rcy5odG1sKQo=