R Markdown is a simple formatting syntax for producing PDF, MS Word, and HTML documents that incorporates R codes and R output in one single source document. It can save you tons of time copying/pasting R text output or exporting/importing R plots into your homework.
Please download the R markdown (RMD) file RMDdemo1.RMD and open it in RStudio. It will be opened in the [Source Editor] as follows.
---
title: "R Markdown Demo 1"
author: "Your Name Goes Here"
output:
word_document: default
pdf_document: default
---
Hello! World.
This is my first R Markdown document.
```{r}
plot(sunspot.month)
```
In the file, the first few lines that begin and end with 3 dashes
(---) are called the header. which
specifies the title, author, output format, and the other meta setting
of the R markdown file.
The remaining part is called the body of the R markdown.
The portion below is called an R code chunk.
```{r}
plot(sunspot.month)
```
In general, R codes in an R markdown document must be enclosed in R code chunks that begin with (three back-ticks (`) followed by an “r” enclosed in curly braces) and ends with another three back-ticks
```{r}
first line of R codes
second line of R codes
... more lines of R codes
```
Please note one can type back-tick (`) using the key on the top right corner of an US keyboard.
back-tick on Keyboard
The code chunk contains only one line of R codes
plot(sunspot.month), where sunspot.month is a
built-in dataset in R that stores the monthly sunspot counts data from
1749 to present. To execute the command, One can place the cursor on the
line plot(sunspot.month), and press [Ctrl + Enter]
(Windows) or [Cmd + Enter] (Mac). The output appears directly below the
code.
Outside of the R code chunk(s), one can add text to an R Markdown
document, like Hello! World in the
RMDdemo1.Rmd file. One can add some description for the
data, the data analysis methods, and the conclusion of the analysis to
the R markdown file.
Please click the [Knit] button in RStudio and choose “Knit to Word”. A Word document should be generated like this.
Please click the [Knit] button in RStudio and choose “Knit to PDF”. A PDF document should be generated like this.
If “Knit to PDF” doesn’t work, please install tinytex
package in R by executing the two lines below in the [Console].
install.packages("tinytex")
tinytex::install_tinytex()
It might take 10+ minutes to download and install
tinytex depending the speed of your internet.
Once tinytex is installed, you can knit the RMD to PDF
again and it should work.
If you still have trouble knitting RMD to PDF, you can choose “Knit to Word” and then convert the knitted Word document into PDF yourself.
Please download the R markdown (RMD) file RMDdemo2.RMD, and open it up in RStudio.
You can resize your plots by adjusting values of
fig.width and fig.height inside
{r} at the beginning of the code chunk.
```{r fig.width=7.5, fig.height=2.5}
plot(sunspot.month)
```
Note the unit of fig.width and fig.height
are in inches. Recall that letter size paper is 8.5 \(\times\) 11 inches.
You can try change the values of fig.width and
fig.height in the first code chunk of
RMDdemo2.RMD.Rmd and [Knit] to PDF] and see how the plot is
changed in the output PDF.
It’s possible to view the output of a code chunk without Knitting the entire document. To run a single line, place your cursor on the line you want to run and press [Ctrl + Enter] (Windows) or [Cmd + Enter] (Mac). The output appears directly below the code chunk.
Please always adjust the sizes of plots appropriately in your homework submission.
One can adjust the alignment of plots by specifying
fig.align to be 'center', 'right'
or 'left' The default alignment is left. The code chunk
below put the plot at the center of the page.
```{r fig.width=4, fig.height=3, fig.align='center'}
plot(sunspot.month)
```
Please change fig.align in one of the code chunks in
RMDdemo2.Rmd, [Knit] the file again and see how the plot
alignment is changed in the output PDF.
One can put more than one line of codes in a code chunk, like the code chunk below, the first line for a time plot and the second line for a histogram of the monthly data of sunspot counts. The histogram will be placed below the time plot in the output PDF, rather than side-by-side.
```{r fig.width=4, fig.height=3.5}
plot(sunspot.month)
hist(sunspot.month)
```
To place the two plots side-by-side, one can add
fig.show='hold' in the code chunk, and specify the relative
widths of the two plots by out.width. The code chunk below
let the two plots each take 45% of the paper width (excluding the
margins).
```{r fig.width=4, fig.height=3.5, fig.show='hold', out.width=c('45%', '45%')}
plot(sunspot.month)
hist(sunspot.month)
```
You can knit RMDdemo2.RMD.Rmd and see the output PDF for
the difference in output of the two code chunks above.
R markdown can combine your text explanation and comment of your data and analysis with R codes and R outputs in one single file. It includes most standard ways of formatted text.
Please download the R markdown (RMD) file
RMDdemo3.RMD,
open it in RStudio. You can play with and try out the following text
formatting methods using the file RMDdemo3.RMD as you move
along and [Knit] to see the output document.
R Markdown:
**This text is bold.**
*This text is in italics*.
You can even ~~strikethrough text~~.
Knitted Output:
This text is bold.
This text is in italics.
You can even strikethrough text.
R Markdown
* item 1
* item 2
- sub-item 1
- sub-item 2
* item 3
- sub-item 1
Knitted Output:
The list must be preceded by a blank line, and 4 spaces should be used before sub-items.
R Markdown:
1. item 1
2. item 2
a. sub-item 1
b. sub-item 2
3. item 3
a. sub-item 1
Knitted Output:
Again, the list must be preceded by a blank line, and 4 spaces should be used before sub-items.
R Markdown
# Header 1
## Header 2
### Header 3
ordinary text
Knitted Output:
ordinary text
An header line must be preceded by a blank line, and
there must be a space between # and the
header title.
R Markdown:
Table Header | Second Header
------------- | -------------
Table Cell 1 | Cell 2
Cell 3 | Cell 4
Knitted Output:
| Table Header | Second Header |
|---|---|
| Table Cell 1 | Cell 2 |
| Cell 3 | Cell 4 |
You can center, right-, or left-justify text in your tables as you like.
R Markdown:
Centered | Right-Justified | Left-Justified
:-------:|----------------:|:----------------
A | 24 | My Friend's Name
B | 5 | My Name
CC | 167 | Firstname Lastname
DDD | 48 | Another Name
Knitted Output:
| Centered | Right-Justified | Left-Justified |
|---|---|---|
| A | 24 | My Friend’s Name |
| B | 5 | My Name |
| CC | 167 | Firstname Lastname |
| DDD | 48 | Another Name |