From df36af407171e1c0a85d0cd6a32dfdc23c11c5ef Mon Sep 17 00:00:00 2001 From: Laurent Modolo <laurent@modolo.fr> Date: Thu, 28 Nov 2019 17:45:22 +0100 Subject: [PATCH] add Rmarkdown presentation --- session_n/img/rmarkdownflow.png | Bin 0 -> 16836 bytes session_n/slides.Rmd | 290 ++++++++++++++++++++++++++++++++ session_n/slides_example.Rmd | 35 ++++ 3 files changed, 325 insertions(+) create mode 100644 session_n/img/rmarkdownflow.png create mode 100644 session_n/slides.Rmd create mode 100644 session_n/slides_example.Rmd diff --git a/session_n/img/rmarkdownflow.png b/session_n/img/rmarkdownflow.png new file mode 100644 index 0000000000000000000000000000000000000000..324b9395ad8c8cc277ff669a179fa8e0c1a1c525 GIT binary patch literal 16836 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 literal 0 HcmV?d00001 diff --git a/session_n/slides.Rmd b/session_n/slides.Rmd new file mode 100644 index 0000000..c228a66 --- /dev/null +++ b/session_n/slides.Rmd @@ -0,0 +1,290 @@ +--- +author: "Laurent Modolo [laurent.modolo@ens-lyon.fr](mailto:laurent.modolo@ens-lyon.fr)" +date: "08 Nov 2019" +output: + beamer_presentation: + theme: metropolis + slide_level: 2 + fig_caption: no + df_print: tibble + highlight: tango + latex_engine: xelatex + slidy_presentation: + highlight: tango +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = FALSE) +``` + +## R Markdown + +R Markdown provides an unified authoring framework for data science, combining your code, its results, and your prose commentary. R Markdown documents are fully reproducible and support dozens of output formats, like PDFs, Word files, slideshows, and more. + +You need the `rmarkdown` package, but you don’t need to explicitly install it or load it, as RStudio automatically does both when needed. + + +```{r logical_operator, echo=FALSE, out.width='100%'} +knitr::include_graphics('img/rmarkdownflow.png') +``` + +## R Markdown + +R Markdown files are designed to be used in three ways: + +- For communicating to decision makers, who want to focus on the conclusions, not the code behind the analysis. +- For collaborating with other data scientists (including future you!), who are interested in both your conclusions, and how you reached them ( i.e. the code). +- As an environment in which to do data science, as a modern day lab notebook where you can capture not only what you did, but also what you were thinking. + +## Markdown language +Text formatting + +`*italic*` or `_italic_` + +- *italic* or _italic_ + +`**bold**` `__bold__` + +- **bold** __bold__ + +`` `code` `` + +- `code` + +`superscript^2^` and `subscript~2~` + +- superscript^2^ and subscript~2~ + +## Markdown language + +Headings +``` +# 1st Level Header + +## 2nd Level Header + +### 3rd Level Header +``` + +## Markdown language +Lists + +``` +* Bulleted list item 1 +* Item 2 + * Item 2a + * Item 2b + +1. Numbered list item 1 +1. Item 2. The numbers are incremented automatically in the + output. +``` + +## Markdown language +Links and images + +``` +<http://example.com> + +[linked phrase](http://example.com) + + +``` + +## Markdown language +Tables + +``` +First Header | Second Header +------------- | ------------- +Content Cell | Content Cell +Content Cell | Content Cell +``` + +## Rmarkdown: markdown meet R + +**R code will be evaluated and printed** + +```` ```{r} ```` +```{r}`r ''` +summary(cars$dist) +``` +```` ``` ```` + + +```{r} +summary(cars$dist) +``` + +## Rmarkdown: markdown meet R + +**Inline R Code** + +There were `` `r `` `nrow(cars)` `` ` `` cars studied + +There were `r nrow(cars)` cars studied + +When inserting numbers into text use `format()` + +## Chunk options + +Chunk output can be customised with options, arguments supplied to chunk header. Knitr provides almost 60 options that you can use to customize your code chunks. + +Option | Run code | Show code | Output | Plots | Messages | Warnings +-------------------|----------|-----------|--------|-------|----------|--------- +`eval = FALSE` | - | | - | - | - | - +`include = FALSE` | | - | - | - | - | - +`echo = FALSE` | | - | | | | +`results = "hide"` | | | - | | | +`fig.show = "hide"`| | | | - | | +`message = FALSE` | | | | | - | +`warning = FALSE` | | | | | | - + +## Rmarkdown: `kable` + +The tables syntax is tedious to use... + +``` +First Header | Second Header +------------- | ------------- +Content Cell | Content Cell +Content Cell | Content Cell +``` + +\pause + +do it in R ! + +```` ```{r kable} ```` +```{r}`r ''` +knitr::kable( + mtcars[1:5, 1:5], + caption = "A knitr kable." +) +``` +```` ``` ```` + +## Rmarkdown: `kable` + +do it in R ! + +```{r kable} +knitr::kable( + mtcars[1:5, 1:5], + caption = "A knitr kable." +) +``` + +## Caching + +Each knit of a document starts from a completely clean slate. + +- This is great for reproducibility +- ensures that you’ve captured every important computation in code. +- can be painful if you have some computations that take a long time + +The solution is `cache = TRUE` + +## Caching + +```` ```{r raw_data} ```` +```{r}`r ''` +rawdata <- readr::read_csv("a_very_large_file.csv") +``` +```` ``` ```` + +```` ```{r processed_data, cache = TRUE, dependson = "raw_data"} ```` +```{r}`r ''` +processed_data <- rawdata %>% + filter(!is.na(import_var)) %>% + mutate(new_variable = complicated_transformation(x, y, z)) +``` +```` ``` ```` + +## YAML Header + +You can control many “whole document” settings by tweaking the parameters of the YAML header + +``` +--- +author: "Laurent Modolo" +date: "28 Nov 2019" +output: + beamer_presentation: + theme: metropolis + highlight: tango + latex_engine: xelatex + slidy_presentation: + highlight: tango +--- +``` + +## Bibliographies and Citations + +Pandoc can automatically generate citations and a bibliography in a number of styles. + +``` +bibliography: rmarkdown.bib +``` + +You can change the style of your citations and bibliography by referencing a CSL (citation style language) file in the csl field: + +``` +bibliography: rmarkdown.bib +csl: apa.csl +``` + +## Bibliographies and Citations + +User the bibtex key: +``` +Blah blah [@smith04]. +``` + +Separate multiple citations with a `;`: +``` +Blah blah [@smith04; @doe99]. +``` + +You can add arbitrary comments inside the square brackets: +``` +Blah blah [see @doe99, pp. 33-35; also @smith04, ch. 1]. +``` + +Remove the square brackets to create an in-text citation: +``` +says blah, or @smith04 [p. 33] says blah. +``` + +Add a `-` before the citation to suppress the author's name: +``` +Smith says blah [-@smith04]. +``` + +## Rmarkdown is not just for R + + +```` ```{bash} ```` +``` +ls -l +``` +```` ``` ```` + +```{bash} +ls -l +``` + +## Rmarkdown is not just for R + +```` ```{python} ```` +``` +x = 1 ** 4 +print(x) +``` +```` ``` ```` + +```{python} +x = 10 ** 4 +print(x) +``` + diff --git a/session_n/slides_example.Rmd b/session_n/slides_example.Rmd new file mode 100644 index 0000000..cd67f17 --- /dev/null +++ b/session_n/slides_example.Rmd @@ -0,0 +1,35 @@ +--- +title: "rmarkdown" +output: + beamer_presentation: default + ioslides_presentation: default +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = FALSE) +``` + +## R Markdown + +This is an R Markdown presentation. 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. + +## Slide with Bullets + +- Bullet 1 +- Bullet 2 +- Bullet 3 + +## Slide with R Output + +```{r cars, echo = TRUE} +summary(cars) +``` + +## Slide with Plot + +```{r pressure} +plot(pressure) +``` + -- GitLab