Intro
R Markdown Notebook
This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com. When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document.
Please refer to the Rmarkdown cheat sheet or this Rmarkdown for beginners video tutorial for a quick guide on syntax.
Packages for tables in R
Several packages support making beautiful tables with R, such as:
But we will use knitr instead in the next section.
Data exploration
Table
I am using the built in mtcars dataset in R. Please refer to R documentation on mtcars for description of data fields.
Data on the first 5 cars in the dataset are shown with knitr’s kable function.
This knitr table shows the first 5 rows of the mtcars dataset.
| Mazda RX4 |
21.0 |
6 |
160 |
110 |
3.90 |
2.620 |
16.46 |
0 |
1 |
4 |
4 |
| Mazda RX4 Wag |
21.0 |
6 |
160 |
110 |
3.90 |
2.875 |
17.02 |
0 |
1 |
4 |
4 |
| Datsun 710 |
22.8 |
4 |
108 |
93 |
3.85 |
2.320 |
18.61 |
1 |
1 |
4 |
1 |
| Hornet 4 Drive |
21.4 |
6 |
258 |
110 |
3.08 |
3.215 |
19.44 |
1 |
0 |
3 |
1 |
| Hornet Sportabout |
18.7 |
8 |
360 |
175 |
3.15 |
3.440 |
17.02 |
0 |
0 |
3 |
2 |
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.
This knitr table shows the first 5 rows of the built in dataset mtcars.
| Mazda RX4 |
21.0 |
6 |
160 |
110 |
3.90 |
2.620 |
16.46 |
0 |
1 |
4 |
4 |
| Mazda RX4 Wag |
21.0 |
6 |
160 |
110 |
3.90 |
2.875 |
17.02 |
0 |
1 |
4 |
4 |
| Datsun 710 |
22.8 |
4 |
108 |
93 |
3.85 |
2.320 |
18.61 |
1 |
1 |
4 |
1 |
| Hornet 4 Drive |
21.4 |
6 |
258 |
110 |
3.08 |
3.215 |
19.44 |
1 |
0 |
3 |
1 |
| Hornet Sportabout |
18.7 |
8 |
360 |
175 |
3.15 |
3.440 |
17.02 |
0 |
0 |
3 |
2 |
Data summary
Data summary showing basic statistics, in this case echo = TRUE was added to the code chunk to enable printing the R code.
summary(mtcars)
mpg cyl disp hp
Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
Median :19.20 Median :6.000 Median :196.3 Median :123.0
Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
drat wt qsec vs
Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
Median :3.695 Median :3.325 Median :17.71 Median :0.0000
Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
am gear carb
Min. :0.0000 Min. :3.000 Min. :1.000
1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
Median :0.0000 Median :4.000 Median :2.000
Mean :0.4062 Mean :3.688 Mean :2.812
3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :1.0000 Max. :5.000 Max. :8.000
As an example for inline R code in Rmarkdown, the median of miles per gallon is 19.2 and the median of horse power is 123.
Data visualisation - basic plot
` Basic plot showing horse power vs miles per gallon.
plot(mtcars$hp,mtcars$mpg)

Data visualisation - advanced plot (ggplot2)
A nicer looking plot using ggplot2. To change the theme, check other options on ggthemes page.
library(ggplot2)
library(dplyr)
library(ggthemes)
ggplot(data=mtcars) +
geom_point(mapping=aes(x=hp, y=mpg,color=hp)) +
labs(title="Miles per gallon vs. horse power",
subtitle="Data: built in mtcars dataset",
x="Horse power",
y="Miles per gallon")+
theme_classic()

Regression
A simple regression plot is shown.
Input variable: Horse power Output variable: Miles per gallon
x<-mtcars$hp
y<-mtcars$mpg
plot(x, y, main = "Linear regression - miles per gallon vs horse power",
xlab = "Horse power", ylab = "Miles per gallon",
pch = 19, frame = FALSE)
abline(lm(y ~ x, data = mtcars), col = "blue")

summary(lm(y~x))
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-5.7121 -2.1122 -0.8854 1.5819 8.2360
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.09886 1.63392 18.421 < 2e-16 ***
x -0.06823 0.01012 -6.742 1.79e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.863 on 30 degrees of freedom
Multiple R-squared: 0.6024, Adjusted R-squared: 0.5892
F-statistic: 45.46 on 1 and 30 DF, p-value: 1.788e-07
Regression with a smoother
The impact of horspower on miles per gallon is shown on the chart below using a smoother.
ggplot(mtcars, aes(hp, mpg)) +
stat_smooth() + geom_point() +
ylab("Miles per Gallon") +
xlab ("No. of Horsepower") +
ggtitle("Impact of Number of Horsepower on Miles per gallon")
`geom_smooth()` using method = 'loess' and formula 'y ~ x'

Public link
You can find this document via this Rpubs link
You can register an account on Rpubs via this link and share your code or Rmarkdown documents there.
LS0tDQp0aXRsZTogIlJNYXJrZG93biBOb3RlYm9vayBkZW1vIC0gQ2FycyINCmF1dGhvcjogIkJlbmNlIFphdXBwZXIiDQpkYXRlOiAiNyBEZWNlbWJlciAyMDIwIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiBodG1sX25vdGVib29rDQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCiMgSW50cm8NCg0KIyMgUiBNYXJrZG93biBOb3RlYm9vaw0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KVGhpcyBpcyBhbiBSIE1hcmtkb3duIGRvY3VtZW50LiBNYXJrZG93biBpcyBhIHNpbXBsZSBmb3JtYXR0aW5nIHN5bnRheCBmb3IgYXV0aG9yaW5nIEhUTUwsIFBERiwgYW5kIE1TIFdvcmQgZG9jdW1lbnRzLiBGb3IgbW9yZSBkZXRhaWxzIG9uIHVzaW5nIFIgTWFya2Rvd24gc2VlIDxodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tPi4gV2hlbiB5b3UgY2xpY2sgdGhlICoqS25pdCoqIGJ1dHRvbiBhIGRvY3VtZW50IHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgaW5jbHVkZXMgYm90aCBjb250ZW50IGFzIHdlbGwgYXMgdGhlIG91dHB1dCBvZiBhbnkgZW1iZWRkZWQgUiBjb2RlIGNodW5rcyB3aXRoaW4gdGhlIGRvY3VtZW50LiANCg0KUGxlYXNlIHJlZmVyIHRvIHRoZSBbUm1hcmtkb3duIGNoZWF0IHNoZWV0XShodHRwczovL3JzdHVkaW8uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE2LzAzL3JtYXJrZG93bi1jaGVhdHNoZWV0LTIuMC5wZGY/X2dhPTIuNTIxMjk4MS43MjY2NzQxNDcuMTYwNzIxNjM0OS01MTEyOTQ0NDUuMTYwNzIxNjM0OSkgb3IgdGhpcyBbUm1hcmtkb3duIGZvciBiZWdpbm5lcnMgdmlkZW8gdHV0b3JpYWxdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dHlGam9DMXU2cDApIGZvciBhIHF1aWNrIGd1aWRlIG9uIHN5bnRheC4NCg0KIyMgUGFja2FnZXMgZm9yIHRhYmxlcyBpbiBSDQoNClNldmVyYWwgcGFja2FnZXMgc3VwcG9ydCBtYWtpbmcgYmVhdXRpZnVsIHRhYmxlcyB3aXRoIFIsIHN1Y2ggYXM6DQoNCiogW3h0YWJsZV0oaHR0cHM6Ly9jcmFuLnItcHJvamVjdC5vcmcvd2ViL3BhY2thZ2VzL3h0YWJsZS8pDQoqIFtzdGFyZ2F6ZXJdKGh0dHBzOi8vY3Jhbi5yLXByb2plY3Qub3JnL3dlYi9wYWNrYWdlcy9zdGFyZ2F6ZXIvKQ0KKiBbcGFuZGVyXShodHRwOi8vcmFwcG9ydGVyLmdpdGh1Yi5pby9wYW5kZXIvKQ0KKiBbdGFibGVzXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvdGFibGVzLykNCiogW2FzY2lpXShodHRwOi8vZXVzZWJlLmdpdGh1Yi5pby9hc2NpaS8pDQoqIGV0Yy4NCg0KQnV0IHdlIHdpbGwgdXNlIGtuaXRyIGluc3RlYWQgaW4gdGhlIG5leHQgc2VjdGlvbi4NCg0KIyBEYXRhIGV4cGxvcmF0aW9uDQoNCiMjIFRhYmxlDQoNCkkgYW0gdXNpbmcgdGhlIGJ1aWx0IGluICptdGNhcnMqIGRhdGFzZXQgaW4gUi4gUGxlYXNlIHJlZmVyIHRvIFtSIGRvY3VtZW50YXRpb24gb24gbXRjYXJzXShodHRwczovL3d3dy5yZG9jdW1lbnRhdGlvbi5vcmcvcGFja2FnZXMvZGF0YXNldHMvdmVyc2lvbnMvMy42LjIvdG9waWNzL210Y2FycykgZm9yIGRlc2NyaXB0aW9uIG9mIGRhdGEgZmllbGRzLg0KDQpEYXRhIG9uIHRoZSBmaXJzdCA1IGNhcnMgaW4gdGhlIGRhdGFzZXQgYXJlIHNob3duIHdpdGgga25pdHIncyBga2FibGVgIGZ1bmN0aW9uLg0KDQpgYGB7ciBlY2hvPUZBTFNFLCByZXN1bHRzPSdhc2lzJ30NCmxpYnJhcnkoa25pdHIpDQprYWJsZShtdGNhcnNbMTo1LF0sY2FwdGlvbj0iVGhpcyAqa25pdHIqIHRhYmxlIHNob3dzIHRoZSBmaXJzdCA1IHJvd3Mgb2YgdGhlICptdGNhcnMqIGRhdGFzZXQuIikNCmBgYA0KDQpOb3RlIHRoYXQgdGhlIGBlY2hvID0gRkFMU0VgIHBhcmFtZXRlciB3YXMgYWRkZWQgdG8gdGhlIGNvZGUgY2h1bmsgdG8gcHJldmVudCBwcmludGluZyBvZiB0aGUgUiBjb2RlIHRoYXQgZ2VuZXJhdGVkIHRoZSBwbG90Lg0KDQpgYGB7ciBlY2hvPUZBTFNFLCByZXN1bHRzPSdhc2lzJ30NCmxpYnJhcnkoa25pdHIpDQprYWJsZShtdGNhcnNbMTo1LF0sY2FwdGlvbj0iVGhpcyAqa25pdHIqIHRhYmxlIHNob3dzIHRoZSBmaXJzdCA1IHJvd3Mgb2YgdGhlIGJ1aWx0IGluIGRhdGFzZXQgKm10Y2FycyouIikNCmBgYA0KDQoNCiMjIERhdGEgc3VtbWFyeQ0KDQpEYXRhIHN1bW1hcnkgc2hvd2luZyBiYXNpYyBzdGF0aXN0aWNzLCBpbiB0aGlzIGNhc2UgYGVjaG8gPSBUUlVFYCB3YXMgYWRkZWQgdG8gdGhlIGNvZGUgY2h1bmsgdG8gZW5hYmxlIHByaW50aW5nIHRoZSBSIGNvZGUuDQoNCmBgYHtyIGVjaG89VFJVRX0NCnN1bW1hcnkobXRjYXJzKQ0KYGBgDQoNCkFzIGFuIGV4YW1wbGUgZm9yIGlubGluZSBSIGNvZGUgaW4gUm1hcmtkb3duLCB0aGUgbWVkaWFuIG9mIG1pbGVzIHBlciBnYWxsb24gaXMgYHIgbWVkaWFuKG10Y2FycyRtcGcpYCBhbmQgdGhlIG1lZGlhbiBvZiBob3JzZSBwb3dlciBpcyBgciBtZWRpYW4obXRjYXJzJGhwKWAuIA0KDQojIyBEYXRhIHZpc3VhbGlzYXRpb24gLSBiYXNpYyBwbG90DQpgDQpCYXNpYyBwbG90IHNob3dpbmcgKmhvcnNlIHBvd2VyKiB2cyAqbWlsZXMgcGVyIGdhbGxvbiouDQoNCmBgYHtyIGVjaG89VFJVRX0NCnBsb3QobXRjYXJzJGhwLG10Y2FycyRtcGcpDQpgYGANCg0KDQojIyBEYXRhIHZpc3VhbGlzYXRpb24gLSBhZHZhbmNlZCBwbG90IChnZ3Bsb3QyKQ0KDQpBIG5pY2VyIGxvb2tpbmcgcGxvdCB1c2luZyAqZ2dwbG90MiouIFRvIGNoYW5nZSB0aGUgdGhlbWUsIGNoZWNrIG90aGVyIG9wdGlvbnMgb24gW2dndGhlbWVzXShodHRwczovL2dncGxvdDIudGlkeXZlcnNlLm9yZy9yZWZlcmVuY2UvZ2d0aGVtZS5odG1sKSBwYWdlLg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2d0aGVtZXMpDQpnZ3Bsb3QoZGF0YT1tdGNhcnMpICsgDQogIGdlb21fcG9pbnQobWFwcGluZz1hZXMoeD1ocCwgeT1tcGcsY29sb3I9aHApKSArDQogIGxhYnModGl0bGU9Ik1pbGVzIHBlciBnYWxsb24gdnMuIGhvcnNlIHBvd2VyIiwNCiAgICAgICBzdWJ0aXRsZT0iRGF0YTogYnVpbHQgaW4gbXRjYXJzIGRhdGFzZXQiLA0KICAgICAgIHg9IkhvcnNlIHBvd2VyIiwNCiAgICAgICB5PSJNaWxlcyBwZXIgZ2FsbG9uIikrDQogIHRoZW1lX2NsYXNzaWMoKQ0KYGBgDQoNCg0KIyMgUmVncmVzc2lvbg0KDQpBIHNpbXBsZSByZWdyZXNzaW9uIHBsb3QgaXMgc2hvd24uDQoNCklucHV0IHZhcmlhYmxlOiAqSG9yc2UgcG93ZXIqDQpPdXRwdXQgdmFyaWFibGU6ICpNaWxlcyBwZXIgZ2FsbG9uKg0KDQpgYGB7cn0NCng8LW10Y2FycyRocA0KeTwtbXRjYXJzJG1wZw0KcGxvdCh4LCB5LCBtYWluID0gIkxpbmVhciByZWdyZXNzaW9uIC0gbWlsZXMgcGVyIGdhbGxvbiB2cyBob3JzZSBwb3dlciIsDQogICAgIHhsYWIgPSAiSG9yc2UgcG93ZXIiLCB5bGFiID0gIk1pbGVzIHBlciBnYWxsb24iLA0KICAgICBwY2ggPSAxOSwgZnJhbWUgPSBGQUxTRSkNCmFibGluZShsbSh5IH4geCwgZGF0YSA9IG10Y2FycyksIGNvbCA9ICJibHVlIikNCg0Kc3VtbWFyeShsbSh5fngpKQ0KYGBgDQojIyBSZWdyZXNzaW9uIHdpdGggYSBzbW9vdGhlcg0KDQpUaGUgaW1wYWN0IG9mIGhvcnNwb3dlciBvbiBtaWxlcyBwZXIgZ2FsbG9uIGlzIHNob3duIG9uIHRoZSBjaGFydCBiZWxvdyB1c2luZyBhIHNtb290aGVyLg0KDQoNCmBgYHtyfQ0KZ2dwbG90KG10Y2FycywgYWVzKGhwLCBtcGcpKSArDQogIHN0YXRfc21vb3RoKCkgKyBnZW9tX3BvaW50KCkgKw0KICB5bGFiKCJNaWxlcyBwZXIgR2FsbG9uIikgKw0KICB4bGFiICgiTm8uIG9mIEhvcnNlcG93ZXIiKSArDQogIGdndGl0bGUoIkltcGFjdCBvZiBOdW1iZXIgb2YgSG9yc2Vwb3dlciBvbiBNaWxlcyBwZXIgZ2FsbG9uIikNCmBgYA0KDQoNCiMjIFB1YmxpYyBsaW5rDQoNCllvdSBjYW4gZmluZCB0aGlzIGRvY3VtZW50IHZpYSB0aGlzIFtScHVicyBsaW5rXShodHRwczovL3JwdWJzLmNvbS9iZW5jZS16YXVwcGVyLzcwMDY3MykNCg0KWW91IGNhbiByZWdpc3RlciBhbiBhY2NvdW50IG9uICpScHVicyogdmlhIHRoaXMgW2xpbmtdKGh0dHBzOi8vd3d3LnJwdWJzLmNvbS8pIGFuZCBzaGFyZSB5b3VyIGNvZGUgb3IgUm1hcmtkb3duIGRvY3VtZW50cyB0aGVyZS4NCg0KDQojIyBUaGFua3MgeW91IQ0KDQohW0NhcHRpb25dKGNvcnZldHRlLmpwZykNCg0KDQoNCg0K