Preface
This tutorial presumes that you have R and R Studio installed, or that you have an account on rstudio.cloud. If you do not already have R and/or R Studio you will need to download and install them. You must first install R from R Project and then the R Studio IDE from R Studio.
Introduction
This lesson introduces the process for writing documents (essays, memos, reports, and scientific papers) using a combination of markdown and code. It uses the R Notebook as its foundation, although markdown is a general language and is supported by numerous other platforms, including Jupyter Notebooks and Google Docs.
There is much more to creating R Notebooks than is shown here. Here we focus on writing documents rather than dynamic data reports, data analyses, or data analytics journals. The documents we will show you how to write will include headers, paragraphs, simple formatting, links, images, embedded web objects, simple R code, and equations. The resulting document will be in PDF and HTML.
R Studio Projects
A project is a collection of markdown files, scripts, images, and data files. Projects allows all files, including data files, to be managed as a single unit, shared, and version controlled using services such as git and GitHub. You should always do your writing in an R Project. See Lesson 6.202 Working with R Projects on how to create projects in R Studio.
Literate Programming
From the perspective of information science, a document is an aggregate of information objects, some of which are created programmatically.
Building an R Notebook
Chunks
This will show a verbatim inline R expression `r 1+1`
in the output.
```{r echo=F}
```
Embedding R Code {embR}
A code chunk (sometimes also referred to as a code fence) for R code looks like this:
Code Chunks with Line Numbers
if (TRUE) {
x <- 1:10
x + 1
}
## [1] 2 3 4 5 6 7 8 9 10 11
In general, a code chunk starts with the language followed by an optional name for the chunk. The name (or chunk label) is useful for quick navigation and for referencing within the document. In R Studio, it can be used for quickly jumping to a section of code.
Jumping to A Chunk by Name
Headings
Knitting
Knitting an R Markdown document generates a markdown document which is then converted to a document, commonly PDF or HTML. This process is often called knitting or rendering; it is essentially a form of compilation. During the knitting process, code chunks and inline code statements are executed and any output is embedded in the result document, unless chunks are marked as not being evaluated or not being included.
Embedding Code Inline
Custom Formatting with Embedded HTML
Embedding LaTeX Equations
Embedding Images
Embedding Hyperlinks and URLs
Tutorial
The tutorial below demonstrates how to create a Notebook in R Studio and add code chunks.
Link to Video: TBD
Summary
Errata
None collected yet. Let us know.
LS0tCnRpdGxlOiAiV3JpdGluZyBEb2N1bWVudHMgd2l0aCBNYXJrZG93biIKcGFyYW1zOgogIGNhdGVnb3J5OiA2CiAgbnVtYmVyOiAyMDgKICB0aW1lOiAzMAogIGxldmVsOiBiZWdpbm5lcgogIHRhZ3M6ICJyLG1hcmtkb3duLGxpdGVyYXRlIHByb2dyYW1taW5nIgogIGRlc2NyaXB0aW9uOiAiRXhwbGFpbnMgbWFya2Rvd24gYW5kIGhvdyB0byB1c2UgUiBTdHVkaW8gYW5kIFIgTm90ZWJvb2tzCiAgICAgICAgICAgICAgICB0byB3cml0ZSBkeW5hbWljIGRvY3VtZW50cyB3aXRoIGVtYmVkZGVkIGNvZGUuIgpkYXRlOiAiPHNtYWxsPmByIFN5cy5EYXRlKClgPC9zbWFsbD4iCmF1dGhvcjogIjxzbWFsbD5NYXJ0aW4gU2NoZWRsYmF1ZXI8L3NtYWxsPiIKZW1haWw6ICJtLnNjaGVkbGJhdWVyQG5ldS5lZHUiCmFmZmlsaXRhdGlvbjogIk5vcnRoZWFzdGVybiBVbml2ZXJzaXR5IgpvdXRwdXQ6IAogIGJvb2tkb3duOjpodG1sX2RvY3VtZW50MjoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICB0aGVtZTogc3BhY2VsYWIKICAgIGhpZ2hsaWdodDogdGFuZ28KLS0tCgotLS0KdGl0bGU6ICI8c21hbGw+YHIgcGFyYW1zJGNhdGVnb3J5YC5gciBwYXJhbXMkbnVtYmVyYDwvc21hbGw+PGJyLz48c3BhbiBzdHlsZT0nY29sb3I6ICMyRTQwNTM7IGZvbnQtc2l6ZTogMC45ZW0nPmByIHJtYXJrZG93bjo6bWV0YWRhdGEkdGl0bGVgPC9zcGFuPiIKLS0tCgpgYGB7ciBjb2RlPXhmdW46OnJlYWRfdXRmOChwYXN0ZTAoaGVyZTo6aGVyZSgpLCcvUi9faW5zZXJ0MkRCLlInKSksIGluY2x1ZGUgPSBGQUxTRX0KYGBgCgojIyBQcmVmYWNlCgpUaGlzIHR1dG9yaWFsIHByZXN1bWVzIHRoYXQgeW91IGhhdmUgUiBhbmQgUiBTdHVkaW8gaW5zdGFsbGVkLCBvciB0aGF0IHlvdSBoYXZlIGFuIGFjY291bnQgb24gW3JzdHVkaW8uY2xvdWRdKGh0dHA6Ly9yc3R1ZGlvLmNsb3VkKS4gSWYgeW91IGRvIG5vdCBhbHJlYWR5IGhhdmUgUiBhbmQvb3IgUiBTdHVkaW8geW91IHdpbGwgbmVlZCB0byBkb3dubG9hZCBhbmQgaW5zdGFsbCB0aGVtLiBZb3UgbXVzdCBmaXJzdCBpbnN0YWxsIFIgZnJvbSBbUiBQcm9qZWN0XShodHRwczovL2Nsb3VkLnItcHJvamVjdC5vcmcvKSBhbmQgdGhlbiB0aGUgUiBTdHVkaW8gSURFIGZyb20gW1IgU3R1ZGlvXShodHRwczovL3JzdHVkaW8uY29tL3Byb2R1Y3RzL3JzdHVkaW8vZG93bmxvYWQvKS4KCiMjIEludHJvZHVjdGlvbgoKVGhpcyBsZXNzb24gaW50cm9kdWNlcyB0aGUgcHJvY2VzcyBmb3Igd3JpdGluZyBkb2N1bWVudHMgKGVzc2F5cywgbWVtb3MsIHJlcG9ydHMsIGFuZCBzY2llbnRpZmljIHBhcGVycykgdXNpbmcgYSBjb21iaW5hdGlvbiBvZiBtYXJrZG93biBhbmQgY29kZS4gSXQgdXNlcyB0aGUgUiBOb3RlYm9vayBhcyBpdHMgZm91bmRhdGlvbiwgYWx0aG91Z2ggbWFya2Rvd24gaXMgYSBnZW5lcmFsIGxhbmd1YWdlIGFuZCBpcyBzdXBwb3J0ZWQgYnkgbnVtZXJvdXMgb3RoZXIgcGxhdGZvcm1zLCBpbmNsdWRpbmcgSnVweXRlciBOb3RlYm9va3MgYW5kIEdvb2dsZSBEb2NzLgoKVGhlcmUgaXMgbXVjaCBtb3JlIHRvIGNyZWF0aW5nIFIgTm90ZWJvb2tzIHRoYW4gaXMgc2hvd24gaGVyZS4gSGVyZSB3ZSBmb2N1cyBvbiB3cml0aW5nIGRvY3VtZW50cyByYXRoZXIgdGhhbiBkeW5hbWljIGRhdGEgcmVwb3J0cywgZGF0YSBhbmFseXNlcywgb3IgZGF0YSBhbmFseXRpY3Mgam91cm5hbHMuIFRoZSBkb2N1bWVudHMgd2Ugd2lsbCBzaG93IHlvdSBob3cgdG8gd3JpdGUgd2lsbCBpbmNsdWRlIGhlYWRlcnMsIHBhcmFncmFwaHMsIHNpbXBsZSBmb3JtYXR0aW5nLCBsaW5rcywgaW1hZ2VzLCBlbWJlZGRlZCB3ZWIgb2JqZWN0cywgc2ltcGxlIFIgY29kZSwgYW5kIGVxdWF0aW9ucy4gVGhlIHJlc3VsdGluZyBkb2N1bWVudCB3aWxsIGJlIGluIFBERiBhbmQgSFRNTC4KCiMjIFIgU3R1ZGlvIFByb2plY3RzCgpBIHByb2plY3QgaXMgYSBjb2xsZWN0aW9uIG9mIG1hcmtkb3duIGZpbGVzLCBzY3JpcHRzLCBpbWFnZXMsIGFuZCBkYXRhIGZpbGVzLiBQcm9qZWN0cyBhbGxvd3MgYWxsIGZpbGVzLCBpbmNsdWRpbmcgZGF0YSBmaWxlcywgdG8gYmUgbWFuYWdlZCBhcyBhIHNpbmdsZSB1bml0LCBzaGFyZWQsIGFuZCB2ZXJzaW9uIGNvbnRyb2xsZWQgdXNpbmcgc2VydmljZXMgc3VjaCBhcyAqZ2l0KiBhbmQgKkdpdEh1YiouIFlvdSBzaG91bGQgYWx3YXlzIGRvIHlvdXIgd3JpdGluZyBpbiBhbiBSIFByb2plY3QuIFNlZSBbTGVzc29uIDYuMjAyIFdvcmtpbmcgd2l0aCBSIFByb2plY3RzXShodHRwOi8vYXJ0aWZpY2l1bS51cy9sZXNzb25zLzA2LnIvbC02LTIwMi1yLXByb2plY3RzL2wtNi0yMDIuaHRtbCkgb24gaG93IHRvIGNyZWF0ZSBwcm9qZWN0cyBpbiBSIFN0dWRpby4KCiMjIExpdGVyYXRlIFByb2dyYW1taW5nCgpGcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBpbmZvcm1hdGlvbiBzY2llbmNlLCBhIGRvY3VtZW50IGlzIGFuIGFnZ3JlZ2F0ZSBvZiBpbmZvcm1hdGlvbiBvYmplY3RzLCBzb21lIG9mIHdoaWNoIGFyZSBjcmVhdGVkIHByb2dyYW1tYXRpY2FsbHkuCgojIyBCdWlsZGluZyBhbiBSIE5vdGVib29rCgojIyBDaHVua3MKClRoaXMgd2lsbCBzaG93IGEgdmVyYmF0aW0gaW5saW5lIFIgZXhwcmVzc2lvbiBgYCBgciBrbml0cjo6aW5saW5lX2V4cHIoIjErMSIpYCBgYCBpbiB0aGUgb3V0cHV0LgoKYGBge3IgZWNobz1GfQprbml0cjo6cmF3X2h0bWwoIjxwcmU+IikKa25pdHI6OnJhd19odG1sKHBhc3RlKAogICImIzk2OyYjOTY7JiM5Njt7ciBlY2hvPUZ9IiwKICAiJiM5NjsmIzk2OyYjOTY7IiwKICBzZXA9Ijxici8+IikpCmtuaXRyOjpyYXdfaHRtbCgiPC9wcmU+IikKYGBgCgojIyMgRW1iZWRkaW5nIFIgQ29kZSB7ZW1iUn0KCkEgY29kZSBjaHVuayAoc29tZXRpbWVzIGFsc28gcmVmZXJyZWQgdG8gYXMgYSBjb2RlIGZlbmNlKSBmb3IgUiBjb2RlIGxvb2tzIGxpa2UgdGhpczoKCiFbXShpbWFnZXMvci1jaHVuay0xLmpwZykKCmBgYHtyIGNodW5rLW5hbWUtd2l0aC1uby1zcGFjZXMsIGV2YWw9RiwgaW5jbHVkZT1GfQojIGNvZGUgZ29lcyBoZXJlCmBgYAoKQ29kZSBDaHVua3Mgd2l0aCBMaW5lIE51bWJlcnMKCmBgYHtyLCBhdHRyLnNvdXJjZT0nLm51bWJlckxpbmVzJ30KaWYgKFRSVUUpIHsKICB4IDwtIDE6MTAKICB4ICsgMQp9CmBgYAoKSW4gZ2VuZXJhbCwgYSBjb2RlIGNodW5rIHN0YXJ0cyB3aXRoIHRoZSBsYW5ndWFnZSBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBuYW1lIGZvciB0aGUgY2h1bmsuIFRoZSBuYW1lIChvciBjaHVuayBsYWJlbCkgaXMgdXNlZnVsIGZvciBxdWljayBuYXZpZ2F0aW9uIGFuZCBmb3IgcmVmZXJlbmNpbmcgd2l0aGluIHRoZSBkb2N1bWVudC4gSW4gUiBTdHVkaW8sIGl0IGNhbiBiZSB1c2VkIGZvciBxdWlja2x5IGp1bXBpbmcgdG8gYSBzZWN0aW9uIG9mIGNvZGUuCgohW0p1bXBpbmcgdG8gQSBDaHVuayBieSBOYW1lXShpbWFnZXMvY2h1bmstbGFiZWxzLmpwZyl7d2lkdGg9IjI1JSJ9CgojIyMgSGVhZGluZ3MKCiMjIyBDb21tb24gUiBNYXJrZG93bgoKU2VlIHRoZSBbUiBNYXJrZG93biBSZWZlcmVuY2UgR3VpZGVdKGh0dHBzOi8vd3d3LnJzdHVkaW8uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzAzL3JtYXJrZG93bi1yZWZlcmVuY2UucGRmP19nYT0yLjU5MTg0MTczLjEyMTQyNTI5MjguMTYzNTk4MDQ3NC0xOTQ5OTU1MTcuMTYzNTQzMzc1NykgZm9yIGEgY29tcGxldGUgbGlzdCBvZiBtYXJrZG93biBlbGVtZW50cy4KCiMjIEtuaXR0aW5nCgpLbml0dGluZyBhbiBSIE1hcmtkb3duIGRvY3VtZW50IGdlbmVyYXRlcyBhIG1hcmtkb3duIGRvY3VtZW50IHdoaWNoIGlzIHRoZW4gY29udmVydGVkIHRvIGEgZG9jdW1lbnQsIGNvbW1vbmx5IFBERiBvciBIVE1MLiBUaGlzIHByb2Nlc3MgaXMgb2Z0ZW4gY2FsbGVkIGtuaXR0aW5nIG9yIHJlbmRlcmluZzsgaXQgaXMgZXNzZW50aWFsbHkgYSBmb3JtIG9mIGNvbXBpbGF0aW9uLiBEdXJpbmcgdGhlIGtuaXR0aW5nIHByb2Nlc3MsIGNvZGUgY2h1bmtzIGFuZCBpbmxpbmUgY29kZSBzdGF0ZW1lbnRzIGFyZSBleGVjdXRlZCBhbmQgYW55IG91dHB1dCBpcyBlbWJlZGRlZCBpbiB0aGUgcmVzdWx0IGRvY3VtZW50LCB1bmxlc3MgY2h1bmtzIGFyZSBtYXJrZWQgYXMgbm90IGJlaW5nIGV2YWx1YXRlZCBvciBub3QgYmVpbmcgaW5jbHVkZWQuCgojIyBFbWJlZGRpbmcgQ29kZSBJbmxpbmUKCiMjIEN1c3RvbSBGb3JtYXR0aW5nIHdpdGggRW1iZWRkZWQgSFRNTAoKIyMgRW1iZWRkaW5nIExhVGVYIEVxdWF0aW9ucwoKIyMgRW1iZWRkaW5nIEltYWdlcwoKIyMgRW1iZWRkaW5nIEh5cGVybGlua3MgYW5kIFVSTHMKCiMjIFR1dG9yaWFsCgpUaGUgdHV0b3JpYWwgYmVsb3cgZGVtb25zdHJhdGVzIGhvdyB0byBjcmVhdGUgYSBOb3RlYm9vayBpbiBSIFN0dWRpbyBhbmQgYWRkIGNvZGUgY2h1bmtzLgoKYGBgez1odG1sfQo8aWZyYW1lIHNyYz0iIiB3aWR0aD0iNDgwIiBoZWlnaHQ9IjI3MCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhdXRvcGxheTsgZnVsbHNjcmVlbjsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4gZGF0YS1leHRlcm5hbD0iMSI+PC9pZnJhbWU+CmBgYAoqKkxpbmsgdG8gVmlkZW8qKjogW1RCRF0oKXt0YXJnZXQ9Il9ibGFuayJ9CgojIyBTdW1tYXJ5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMjIEZpbGVzICYgUmVzb3VyY2VzCgpgYGB7ciB6aXBGaWxlcywgZWNobz1GQUxTRX0KemlwTmFtZSA9IHNwcmludGYoIkxlc3NvbkZpbGVzLSVzLSVzLnppcCIsIAogICAgICAgICAgICAgICAgIHBhcmFtcyRjYXRlZ29yeSwKICAgICAgICAgICAgICAgICBwYXJhbXMkbnVtYmVyKQoKdGV4dEFMaW5rID0gcGFzdGUwKCJBbGwgRmlsZXMgZm9yIExlc3NvbiAiLCAKICAgICAgICAgICAgICAgcGFyYW1zJGNhdGVnb3J5LCIuIixwYXJhbXMkbnVtYmVyKQoKIyBkb3dubG9hZEZpbGVzTGluaygpIGlzIGluY2x1ZGVkIGZyb20gX2luc2VydDJEQi5SCmtuaXRyOjpyYXdfaHRtbChkb3dubG9hZEZpbGVzTGluaygiLiIsIHppcE5hbWUsIHRleHRBTGluaykpCmBgYAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIyBSZWZlcmVuY2VzCgpYaWUsIFguLCBEZXJ2aWV1eCwgQy4sIFJpZWRlcmVyLCBFLiAobi5kLikuIFIgTWFya2Rvd24gQ29va2Jvb2suIEF2YWlsYWJsZSBhdCBbYm9va2Rvd24ub3JnXShodHRwczovL2Jvb2tkb3duLm9yZy95aWh1aS9ybWFya2Rvd24tY29va2Jvb2svKQoKW092ZXJ2aWV3IG9mIFIgTWFya2Rvd25dKGh0dHBzOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tLykKCltSIE1hcmtkb3duIENoZWF0IFNoZWV0XShodHRwczovL3d3dy5yc3R1ZGlvLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wMy9ybWFya2Rvd24tcmVmZXJlbmNlLnBkZj9fZ2E9Mi41OTE4NDE3My4xMjE0MjUyOTI4LjE2MzU5ODA0NzQtMTk0OTk1NTE3LjE2MzU0MzM3NTcpCgpbV2lraXBlZGlhOiBMaXRlcmF0ZSBQcm9ncmFtbWluZ10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGl0ZXJhdGVfcHJvZ3JhbW1pbmcpCgpbRW1iZWRkaW5nIFZlcmJhdGltIENvZGUgQ2h1bmtzIGluIE1hcmtkb3duXShodHRwczovL2Jvb2tkb3duLm9yZy95aWh1aS9ybWFya2Rvd24tY29va2Jvb2svdmVyYmF0aW0tY29kZS1jaHVua3MuaHRtbCkKCiMjIEVycmF0YQoKTm9uZSBjb2xsZWN0ZWQgeWV0LiBMZXQgdXMga25vdy4KCmBgYHs9aHRtbH0KPHNjcmlwdCBzcmM9Imh0dHBzOi8vZm9ybS5qb3Rmb3JtLmNvbS9zdGF0aWMvZmVlZGJhY2syLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIG5ldyBKb3Rmb3JtRmVlZGJhY2soewogICAgZm9ybUlkOiAiMjEyMTg3MDcyNzg0MTU3IiwKICAgIGJ1dHRvblRleHQ6ICJGZWVkYmFjayIsCiAgICBiYXNlOiAiaHR0cHM6Ly9mb3JtLmpvdGZvcm0uY29tLyIsCiAgICBiYWNrZ3JvdW5kOiAiI0Y1OTIwMiIsCiAgICBmb250Q29sb3I6ICIjRkZGRkZGIiwKICAgIGJ1dHRvblNpZGU6ICJsZWZ0IiwKICAgIGJ1dHRvbkFsaWduOiAiY2VudGVyIiwKICAgIHR5cGU6IGZhbHNlLAogICAgd2lkdGg6IDcwMCwKICAgIGhlaWdodDogNTAwLAogICAgaXNDYXJkRm9ybTogZmFsc2UKICB9KTsKPC9zY3JpcHQ+CmBgYApgYGB7ciBjb2RlPXhmdW46OnJlYWRfdXRmOChwYXN0ZTAoaGVyZTo6aGVyZSgpLCcvUi9fZGVwbG95S25pdC5SJykpLCBpbmNsdWRlID0gRkFMU0V9CmBgYAo=