diff --git a/session_n/img/rmarkdownflow.png b/session_n/img/rmarkdownflow.png new file mode 100644 index 0000000000000000000000000000000000000000..324b9395ad8c8cc277ff669a179fa8e0c1a1c525 Binary files /dev/null and b/session_n/img/rmarkdownflow.png differ diff --git a/session_n/slides.Rmd b/session_n/slides.Rmd new file mode 100644 index 0000000000000000000000000000000000000000..c228a6678576445b6e19c491cdc8609b84378aa3 --- /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 0000000000000000000000000000000000000000..cd67f1795f209bd6bddf697f44fc313b3a8e8d28 --- /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) +``` +