Commit 29a574bc authored by David Carayon's avatar David Carayon
Browse files

removing some templates and dir enhancement

parent 546c9b51
......@@ -26,4 +26,8 @@ Imports:
rmarkdown,
revealjs,
scales,
xaringan
xaringan,
xfun,
magrittr,
cli,
rstudioapi
# Generated by roxygen2: do not edit by hand
export(create_analysis_dir)
export(inrae_report)
export(new_analysis)
export(scale_color_inrae)
export(scale_color_inrae_n5)
export(scale_color_quant)
......
globalVariables("couleurs_inrae")
#' Create analysis directory template
#'
#' @param dir the directory where the template will be created
#' @param dir the directory where the analysis template will be created
#'
#' @return
#' @export
#'
#' @examples
#' library(InraeThemes)
#' # create_analysis_dir(getwd())
create_analysis_dir <- function(dir = getwd()){
#' \dontrun{new_analysis()}
new_analysis <- function(dir = "MyProject"){
path <- system.file("template_analyse", package = "IDEATools")
if (!dir.exists(dir)) {dir.create(dir)}
setwd(dir)
if (!dir.exists(dir)) dir.create(dir)
cli::cli_alert_warning(paste0("Working directory changed to '", dir,"'"))
file.copy(path, dir, recursive = TRUE)
# Creating folders --------------------------------------------------------
dir.create("data")
dir.create("docs")
dir.create("plots")
dir.create("R")
dir.create("raw-data")
# Generating a README -----------------------------------------------------
file.create("README.md")
sink("README.md")
cat(paste0("Welcome to ",dir," !
This project is about..."))
sink()
# Generating a notebook ---------------------------------------------------
file.create("R/01_notebook.Rmd")
sink("R/01_notebook.Rmd")
cat("---
title: \"Titre de l'analyse\"
subtitle : \"Sous titre\"
author: \"Auteur\"
date: \"Dernière M.A.J : `r format(Sys.time(), '%d %B, %Y')`\"
output:
html_notebook:
theme: united
toc: true
toc_float:
collapsed: false
smooth_scroll: true
toc_depth: 3
number_sections: false
---
# Intro {-}
Refer to a [sub section](#sub-analysis).
Citing an article [@article].
Refer to section [Analysis].
# Input {-}
Loading libraries:
```{r Load libraries, message = FALSE}
library(InraeThemes)
library(gt)
library(magrittr)
library(ggplot2)
library(xfun)
```
# Analysis {-}
`Vestibulum` imperdiet^[Nullam quis sem nunc], ex vel sodales facilisis, nibh tellus imperdiet massa, sit amet scelerisque orci velit vel tellus. Ut consequat justo tincidunt porttitor varius. Suspendisse erat ipsum, feugiat vitae rhoncus non, molestie ac purus. Morbi aliquet, elit eget blandit suscipit, est lacus facilisis turpis, nec fermentum nunc felis et lorem.
::: {#Table1}
A nice table example:
:::
```{r}
gt::gt(head(mtcars)) %>% gt::tab_options(table.width = pct(100))
```
## Sub analysis {-}
> Suspendisse potenti
We can have math formulas inline like this: $E=mc^2$ or make them span an entire line like this:
::: {#eq1}
:::
$$f=\\frac{a}{b+c}$$
**Create a horizontal line** using [markdown syntax](https://commonmark.org/help/):
----
Cras pulvinar ligula ac nisi porttitor, volutpat congue orci tincidunt. Pellentesque non mi congue, porta enim eget, venenatis sem. Integer suscipit vulputate tellus, eget commodo dolor gravida vel. Suspendisse gravida gravida ligula, in interdum sapien molestie ut.
### Yet another analysis {-}
::: {.blue-box}
In ut vehicula risus.
Refer to the [table](#Table1) above!
:::
```{r example plot, warning = FALSE, fig.align='center'}
options(scipen=999) # turn-off scientific notation like 1e+48
theme_set(theme_bw()) # pre-set the bw theme.
data(\"midwest\", package = \"ggplot2\")
# midwest <- read.csv(\"http://goo.gl/G1K41K\") # bkup data source
# Scatterplot
gg = ggplot(midwest, aes(x=area, y=poptotal)) +
geom_point(aes(col=state, size=popdensity)) +
geom_smooth(method=\"loess\", se=F) +
xlim(c(0, 0.1)) +
ylim(c(0, 500000)) +
labs(subtitle=\"Area Vs Population\",
y=\"Population\",
x=\"Area\",
title=\"Scatterplot\",
caption = \"Source: midwest\")
plot(gg)
```
Remember [equation 1](#eq1)!
# Conclusion {-}
::: {#box1 .green-box}
Wrapping it up!
:::
::: {#box4 .orange-box}
An orange box!!!
:::
# R session info {-}
```{r session info, comment=\"\"}
xfun::session_info()
```
# References {-}
")
sink()
cli::cli_alert_success(paste0("A new analysis directory was created with the following directories :
├── ",dir,"
│ ├── data
│ ├── R
│ │ └── 01_notebook.Rmd
│ ├── plots
│ ├── docs
│ ├── raw_data
│ ├── README.md"))
cli::cli_alert_info(paste0("Now opening '", "README.md","'"))
rstudioapi::navigateToFile("README.md")
}
#' Create analysis directory template
#'
#' @param dir the directory where the analysis template will be created
#'
#' @return
#' @export
#'
#' @examples
#' library(InraeThemes)
#' \dontrun{new_analysis()}
inrae_report <- function(dir = "MyProject"){
}
......@@ -21,76 +21,100 @@ library(magrittr)
[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)
<!-- badges: end -->
InraeThemes est un package proposant une variété de templates (Rmarkdown) de thèmes (ggplot) et de fonctions utilitaires qui respectent la charte graphique INRAE.
InraeThemes est un package proposant une variété de templates (Rmarkdown), de thèmes (ggplot) et de fonctions utilitaires qui respectent la charte graphique INRAE.
**Attention : Ces modèles nécessitent l'installation de 2 polices adoptées dans la charte graphique INRAE : "Raleway" et "Avenir Next Pro".**
## Installation
# Installation
Le package peut-être installé via :
``` r
# install.packages("devtools")
devtools::install_github("davidcarayon/InraeThemes")
# install.packages("remotes")
remotes::install_github("davidcarayon/InraeThemes")
```
## Exemple
# Création d'un répertoire d'analyse
Voici un exemple de graphique utilisant un thème proposé dans le package, `theme_quant()`, inspiré du package `{tidyquant}`.
Ce package propose une architecture type de dossier d'analyse de données. En appelant cette fonction, l'utilisateur va créer un répertoire complet dédié à un projet et prêt à l'emploi.
```{r example, message = FALSE}
library(InraeThemes)
library(ggplot2)
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(aes(color = as.factor(gear)))+
scale_color_quant()+
geom_smooth(color = couleurs_inrae[1]) +
labs(x = "Valeur de X", y = "Valeur de Y", title = "Titre du graphique", subtitle = "Sous-titre", color = "couleur") +
theme_quant()
```{r eval = FALSE}
new_analysis(dir = "MyProject")
```
# Création d'un répertoire d'analyse
La fonction utilitaire `create_analysis_dir()` permet de créer, dans le répertoire de votre choix, une architecture "classique" d'un projet d'analyse de données :
Va donner l'architecture suivante :
```{r eval = FALSE}
create_analyse_dir(dir = getwd())
```
├── MyProject
│ ├── data
│ ├── R
│ │ └── 01_notebook.Rmd
│ ├── plots
│ ├── raw-data
│ ├── README.md
```
Une proposition de *notebook* sera directement ouvert sur Rstudio pour démarrer les analyses.
![](man/figures/cap_dir.png)
# Mise à disposition de modèles Rmarkdown INRAE
# Utilisation de modèles
Ce package permet également de rédiger des rapports et/ou présentations pré-formatés au style INRAE via un plugin RStudio. Les modèles sont accessibles via `File > New File > Rmarkdown > From Template`.
Ce package permet de rédiger des rapports pré-formatés au style INRAE. Les modèles sont directement accessibles dans Rstudio via `File > New File > Rmarkdown > From Template`.
## Rapport INRAE Pagedown
## Rapport INRAE
Cette première fonction permet de produire un rapport HTML et/ou PDF (au choix) en utilisant le package {pagedown}. Le template Rmd est livré avec une feuille de style CSS correspondant aux couleurs INRAE ainsi que différents graphismes (logo, dernière page, etc.)
Rapport PDF ou HTML utilisant {pagedown}
L'utilisateur pourra choisir d'utiliser `chrome_print` au moment de la compilation pour obtenir un fichier PDF en plus de la sortie HTML.
![](man/figures/cap_rapport.png)
## Présentation INRAE RevealJS
Présentation HTML et/ou PDF utilisant {revealjs} et `pagedown::chrome_print()`
Cette seconde fonction permet de produire une présentation HTML utilisant la technologie RevealJS (présentation web en 2 dimensions).
Le template Rmd est livré avec une feuille de style CSS correspondant aux couleurs INRAE ainsi que différents graphismes (logo, première page, etc.)
L'utilisateur pourra choisir d'utiliser `chrome_print` au moment de la compilation pour obtenir un fichier PDF en plus de la sortie HTML.
![](man/figures/cap_reveal.png)
## Présentation INRAE RemarkJS
Présentation HTML et/ou PDF utilisant {remarkjs} et `pagedown::chrome_print()`
Cette seconde fonction permet de produire une présentation HTML utilisant la technologie RemarkJS.
Le template Rmd est livré avec une feuille de style CSS correspondant aux couleurs INRAE ainsi que différents graphismes (logo, première page, etc.)
L'utilisateur pourra choisir d'utiliser `chrome_print` au moment de la compilation pour obtenir un fichier PDF en plus de la sortie HTML.
![](man/figures/cap_remark.png)
## Rapport simplifié INRAE
## TO-DO
Rapport avec moins de formattage que le rapport précédent, dédié aux documents de travail pour partager des résultats d'analyse.
- Rapport Bookdown
- Rapport Word
## Thèmes ggplot
Voici un exemple de graphique utilisant un thème proposé dans le package, `theme_quant()`, inspiré du package `{tidyquant}`.
![](man/figures/simple_report.png)
```{r example, message = FALSE, fig.width = 13, fig.height=9}
library(InraeThemes)
library(ggplot2)
ggplot(midwest, aes(x=area, y=poptotal)) +
geom_point(aes(col=state)) +
geom_smooth(method="loess", se=F) +
xlim(c(0, 0.1)) +
ylim(c(0, 500000)) +
facet_wrap(~state, scales = "free") +
labs(subtitle="Area Vs Population",
y="Population",
x="Area",
title="Scatterplot",
caption = "Source: midwest") +
scale_color_quant()+
theme_quant()
```
## Rapports reproductibles
Rapports mettant encore plus l'accent sur la reproductibilité des analyses.
![](man/figures/cap_analysis.png)
......@@ -10,89 +10,120 @@ experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](h
<!-- badges: end -->
InraeThemes est un package proposant une variété de templates
(Rmarkdown) de thèmes (ggplot) et de fonctions utilitaires qui
(Rmarkdown), de thèmes (ggplot) et de fonctions utilitaires qui
respectent la charte graphique INRAE.
**Attention : Ces modèles nécessitent l’installation de 2 polices
adoptées dans la charte graphique INRAE : “Raleway” et “Avenir Next
Pro”.**
## Installation
# Installation
Le package peut-être installé via :
``` r
# install.packages("devtools")
devtools::install_github("davidcarayon/InraeThemes")
# install.packages("remotes")
remotes::install_github("davidcarayon/InraeThemes")
```
## Exemple
# Création d’un répertoire d’analyse
Voici un exemple de graphique utilisant un thème proposé dans le
package, `theme_quant()`, inspiré du package `{tidyquant}`.
Ce package propose une architecture type de dossier d’analyse de
données. En appelant cette fonction, l’utilisateur va créer un
répertoire complet dédié à un projet et prêt à l’emploi.
``` r
library(InraeThemes)
library(ggplot2)
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(aes(color = as.factor(gear)))+
scale_color_quant()+
geom_smooth(color = couleurs_inrae[1]) +
labs(x = "Valeur de X", y = "Valeur de Y", title = "Titre du graphique", subtitle = "Sous-titre", color = "couleur") +
theme_quant()
new_analysis(dir = "MyProject")
```
<img src="man/figures/README-example-1.png" width="100%" />
Va donner l’architecture suivante :
# Création d’un répertoire d’analyse
├── MyProject
│ ├── data
│ ├── R
│ │ └── 01_notebook.Rmd
│ ├── plots
│ ├── raw-data
│ ├── README.md
La fonction utilitaire `create_analysis_dir()` permet de créer, dans le
répertoire de votre choix, une architecture “classique” d’un projet
d’analyse de données :
Une proposition de *notebook* sera directement ouvert sur Rstudio pour
démarrer les analyses.
``` r
create_analyse_dir(dir = getwd())
```
![](man/figures/cap_dir.png)
# Mise à disposition de modèles Rmarkdown INRAE
# Utilisation de modèles
Ce package permet également de rédiger des rapports et/ou présentations
pré-formatés au style INRAE via un plugin RStudio. Les modèles sont
accessibles via `File > New File > Rmarkdown > From Template`.
Ce package permet de rédiger des rapports pré-formatés au style INRAE.
Les modèles sont directement accessibles dans Rstudio via `File > New
File > Rmarkdown > From Template`.
## Rapport INRAE Pagedown
## Rapport INRAE
Cette première fonction permet de produire un rapport HTML et/ou PDF (au
choix) en utilisant le package {pagedown}. Le template Rmd est livré
avec une feuille de style CSS correspondant aux couleurs INRAE ainsi que
différents graphismes (logo, dernière page, etc.)
Rapport PDF ou HTML utilisant {pagedown}
L’utilisateur pourra choisir d’utiliser `chrome_print` au moment de la
compilation pour obtenir un fichier PDF en plus de la sortie HTML.
![](man/figures/cap_rapport.png)
## Présentation INRAE RevealJS
Présentation HTML et/ou PDF utilisant {revealjs} et
`pagedown::chrome_print()`
Cette seconde fonction permet de produire une présentation HTML
utilisant la technologie RevealJS (présentation web en 2 dimensions).
Le template Rmd est livré avec une feuille de style CSS correspondant
aux couleurs INRAE ainsi que différents graphismes (logo, première page,
etc.)
L’utilisateur pourra choisir d’utiliser `chrome_print` au moment de la
compilation pour obtenir un fichier PDF en plus de la sortie HTML.
![](man/figures/cap_reveal.png)
## Présentation INRAE RemarkJS
Présentation HTML et/ou PDF utilisant {remarkjs} et
`pagedown::chrome_print()`
Cette seconde fonction permet de produire une présentation HTML
utilisant la technologie RemarkJS.
Le template Rmd est livré avec une feuille de style CSS correspondant
aux couleurs INRAE ainsi que différents graphismes (logo, première page,
etc.)
L’utilisateur pourra choisir d’utiliser `chrome_print` au moment de la
compilation pour obtenir un fichier PDF en plus de la sortie HTML.
![](man/figures/cap_remark.png)
## Rapport simplifié INRAE
## TO-DO
Rapport avec moins de formattage que le rapport précédent, dédié aux
documents de travail pour partager des résultats d’analyse.
- Rapport Bookdown
- Rapport Word
![](man/figures/simple_report.png)
## Thèmes ggplot
## Rapports reproductibles
Voici un exemple de graphique utilisant un thème proposé dans le
package, `theme_quant()`, inspiré du package `{tidyquant}`.
Rapports mettant encore plus l’accent sur la reproductibilité des
analyses.
``` r
library(InraeThemes)
library(ggplot2)
ggplot(midwest, aes(x=area, y=poptotal)) +
geom_point(aes(col=state)) +
geom_smooth(method="loess", se=F) +
xlim(c(0, 0.1)) +
ylim(c(0, 500000)) +
facet_wrap(~state, scales = "free") +
labs(subtitle="Area Vs Population",
y="Population",
x="Area",
title="Scatterplot",
caption = "Source: midwest") +
scale_color_quant()+
theme_quant()
#> Warning: Removed 15 rows containing non-finite values (stat_smooth).
#> Warning: Removed 15 rows containing missing values (geom_point).
```
![](man/figures/cap_analysis.png)
<img src="man/figures/README-example-1.png" width="100%" />
---
title: "Titre de l'analyse"
subtitle : "NB : Ce template est une version simplifiée de [rtemps](https://github.com/bblodfon/rtemps)."
subtitle : "Sous titre"
author: "Auteur"
date: "Dernière M.A.J : `r format(Sys.time(), '%d %B, %Y')`"
output:
html_document:
css: styles/analysis_report.css
html_notebook:
theme: united
toc: true
toc_float:
......@@ -13,16 +12,10 @@ output:
smooth_scroll: true
toc_depth: 3
number_sections: false
code_folding: hide
code_download: true
# A décommenter pour obtenir une version PDF en +
# knit: pagedown::chrome_print
---
# Intro {-}
Template based on [Rmarkdown](https://bookdown.org/yihui/rmarkdown/), using the [united HTML theme](https://bootswatch.com/united/).
Refer to a [sub section](#sub-analysis).
Citing an article [@article].
Refer to section [Analysis].
......
/* DISCLAIMER : Code inspiration from package {rtemps} (https://github.com/bblodfon/rtemps) */
/* Modified by D. Carayon (INRAE) */
body {
font-size: 1.6rem;
text-align: justify;
}
a:link {
color: #00A3A6;
}
.title {
font-size: 47px;
color: #008c8e;
}
.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
background-color: #00A3A6;
border-color: #000000;
}
h1,h2,h3,h4,h5 {
text-align: left;
}
.blue-box {
background-color: #e6f0ff;
border-radius: 5px;
padding: 20px;
margin-bottom: 10px;
}
.green-box {
background-color: #d9ffe9;
border-radius: 5px;
padding: 20px;
margin-bottom: 10px;
}
.orange-box {
background-color: #ffeedf;
border-radius: 5px;
padding: 20px;
margin-bottom: 10px;
}
.info-box {
padding: 1em 1em 1em 4em;
margin-bottom: 10px;
border: 2px solid orange;
border-radius: 10px;
background: #f5f5f5 5px center/3em no-repeat;
}
name: Rapports reproductibles INRAE
description: >
Rapports reproductibles INRAE
create_dir: FALSE
---
title: "Titre du document"
author: "Auteur du document"
date: "Analyse du `r format(Sys.Date(), '%d %B %Y')`"
output:
pagedown::html_paged:
highlight: zenburn
css:
- "style/simple.css"
knit: pagedown::chrome_print
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(
echo = FALSE,
message = FALSE,
warning = FALSE,
dpi = 300,
out.width = 2100
)
```
```{r packages}
library(InraeThemes)
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
# Si besoin des couleurs
couleurs_inrae<-rgb(red=c(102,0,39,0,255,157,158,66,121,196),