Skip to content

Commit f548ba3

Browse files
integration of new {svBase} functions
1 parent 447328d commit f548ba3

File tree

2 files changed

+30
-46
lines changed

2 files changed

+30
-46
lines changed

inst/tutorials/C00La_refresh/C00La_refresh.Rmd

Lines changed: 29 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -20,35 +20,7 @@ library(mlearning)
2020
# datasets
2121
crabs <- read("crabs", package = "MASS", lang = "fr")
2222
23-
# Code temporaire -----
24-
# Code pour le remaniement
25-
sselect <- collapse::fselect
26-
tselect <- dplyr::select
27-
28-
sfilter <- function(.data, ...) {
29-
filters <- match.call()[-(1:2)]
30-
ffilter <- collapse::fsubset
31-
for (i in 1:...length())
32-
.data <- do.call(ffilter, list(.x = .data, filters[[i]]))
33-
.data
34-
}
35-
36-
tfilter <- dplyr::filter
37-
38-
smutate <- collapse::fmutate
39-
tmutate <- dplyr::mutate
40-
41-
sgroup_by <- collapse::fgroup_by
42-
tgroup_by <- dplyr::group_by
43-
44-
sungroup <- collapse::fungroup
45-
tungroup <- dplyr::ungroup
46-
47-
ssummarise <- collapse::fsummarise
48-
tsummarise <- function(.data, ..., .groups = "drop_last") {
49-
dplyr::summarise(.data, ..., .groups = .groups)
50-
}
51-
23+
# Code temporaire ----
5224
## Code pour ACP
5325
## Ce code devrait pouvoir être enlevé
5426
SciViews::R()
@@ -571,7 +543,7 @@ crabs
571543
grade_code("Bravo ! Vous avez importé le tableau de données", "Il semble que la réponse n'est pas la bonne. Ne complète que les élèments manquants marqué ___. Consulte ensuite bien la page d'aide de la fonction.")
572544
```
573545

574-
La fonction read() permet d'importer tous les formats suivants. Avec l'instruction suivante, vous pouvez retrouver tous les formats supportés par la fonction read() et write().
546+
La fonction `read()` permet d'importer tous les formats suivants. Avec l'instruction suivante, vous pouvez retrouver tous les formats supportés par la fonction `read()` et `write()`.
575547

576548
```{r, echo=TRUE}
577549
getOption("read_write")
@@ -750,24 +722,32 @@ L'utilisation d'objet de type `data.table` requiert quelques modifications prés
750722
# Assignation classique => la version conseillée
751723
crabs1 <- sselect(crabs, species, length)
752724
# Assignation alternative
753-
crabs1 %<-% tselect(crabs, species, length)
725+
crabs1 %<-% select(crabs, species, length)
754726
# Assignation classique avec collect_dtx()
755-
crabs1 <- tselect(crabs, species, length) |> collect_dtx()
727+
crabs1 <- select(crabs, species, length) |> collect_dtx()
756728
```
757729

758-
Vous aurez remarqué que nous employons tout d'abord la fonction sselect() qui est similaire à la fonction tselect() et à la fonction select().
730+
Vous aurez remarqué que nous employons tout d'abord la fonction sselect() qui est similaire à la fonction select().
759731

760-
**Les grandes familles de fonction** : Il est possible de réaliser des regroupements de fonctions dans R. Nous avons les fonctions associées au Tidyverse (que nous appellerons tidy par commodité) comme mutate(), select(), pivot_longer(),... Pour simplifier l'identification des fonctions tidy, nous les renommons tmutate(), tselect(), tpivot_longer(),...
732+
**Les grandes familles de fonction** : Il est possible de réaliser des regroupements de fonctions dans R. Nous avons les fonctions associées au Tidyverse (que nous appellerons tidy par commodité) comme mutate(), select(), pivot_longer(),...
761733

762-
Enfin, nous avons les fonctions non-tidy. Le package {collapse} propose des fonctions ressemblantes aux fonctions du Tidyverse et parfaitement compatibles avec les objets `data.table`. Elles débutent par un `f` comme `fselect()`. Pour simplifier l'identification de ces fonctions, nous les renommons `sselect()`, `smutate()`, `sgroup_by()`,... Elles sont plus rapides que les fonctions tidy.
734+
```{r, echo=TRUE}
735+
list_tidy_functions()
736+
```
737+
738+
Enfin, nous avons les fonctions non-tidy. Nous parlerons de fonction `speedy`. Plusieurs fonctions proviennet du package {collapse}. Il propose des fonctions ressemblantes aux fonctions du Tidyverse et parfaitement compatibles avec les objets `data.table`. Elles débutent par un `f` comme `fselect()`. Pour simplifier l'identification de ces fonctions, nous les renommons `sselect()`, `smutate()`, `sgroup_by()`,... Elles sont plus rapides que les fonctions tidy.
763739

764-
En résumé, on retrouve un équivalent aux 5 fonctions principales du Tidyverse pour le remaniement de tableau. Les arguments des fonctions et les résultats proposés sont très similaires :
740+
```{r, echo=TRUE}
741+
list_speedy_functions()
742+
```
765743

766-
- sélectionner des colonnes au sein d'un jeu de données avec tselect()/sselect()
767-
- filtrer des lignes dans un jeu de données avec tfilter()/sfilter()
768-
- calculer de nouvelles variables dans un jeu de données avec tmutate()/smutate()
769-
- regrouper les données au sein d'un tableau avec tgroup_by()/sgroup_by()
770-
- résumer les variables d'un jeu de données avec tsummarise()/ssummarise()
744+
En résumé, on retrouve un équivalent aux 5 fonctions principales du Tidyverse pour le remaniement de tableau dans la famille des fonction `speedy`. Les arguments des fonctions et les résultats proposés sont très similaires :
745+
746+
- sélectionner des colonnes au sein d'un jeu de données avec select()/sselect()
747+
- filtrer des lignes dans un jeu de données avec filter()/sfilter()
748+
- calculer de nouvelles variables dans un jeu de données avec mutate()/smutate()
749+
- regrouper les données au sein d'un tableau avec group_by()/sgroup_by()
750+
- résumer les variables d'un jeu de données avec summarise()/ssummarise()
771751

772752
*Nous vous conseillons d'employer préférentiellement les fonctions `s...`. Malheureusement, il n'existe pas toujours d'équivalent aux fonctions tidy comme pour la fonction tpivot_longer().*
773753

@@ -834,23 +814,23 @@ En appliquant les nouvelles conventions citées précédemment, nous vous propos
834814
# Utilisation des fonctions fast
835815
crabs %>.%
836816
sgroup_by(., species, sex) |> ssummarise(
837-
length_mean = fmean(length), length_sd = fsd(length), n = fnobs(length)) ->
817+
length_mean = fmean(length), length_sd = fsd(length), n = fn(length)) ->
838818
crabs_red
839819
840820
# Utilisation des fonctions tidy
841821
crabs %>.%
842822
tgroup_by(., species, sex) |> tsummarise(
843-
length_mean = fmean(length), length_sd = fsd(length), n = fnobs(length)) %->%
823+
length_mean = fmean(length), length_sd = fsd(length), n = fn(length)) %->%
844824
crabs_red
845825
```
846826

847827
Nous pouvons observer l'utilisation :
848828

849-
- des fonctions `fast` du package {collapse}
829+
- des fonctions `fast` du package {collapse} (essentiellement)
850830
- du pipe natif `|>` et du pipe de {flow}
851831
- de l'assignation alternative `%->%` (uniquement avec la version tidy)
852832

853-
Les fonctions en R de base peuvent être employées afin de réaliser des calculs comme la somme, la moyenne, la variance sur des vecteurs ou des matrices. Ces fonctions ont également une version équivalente dans l'ensemble des fonctions `fast` du package {collapse}:
833+
Les fonctions en R de base peuvent être employées afin de réaliser des calculs comme la somme, la moyenne, la variance sur des vecteurs ou des matrices. Ces fonctions ont une version équivalente dans l'ensemble des fonctions `fast` du package {collapse}:
854834

855835
- calculer la moyenne : mean()/fmean()
856836
- calculer l'écart-type : sd()/fsd()
@@ -860,6 +840,10 @@ Les fonctions en R de base peuvent être employées afin de réaliser des calcul
860840

861841
*Nous vous conseillons d'employer préférentiellement les fonctions `fast` qui sont plus rapides.*
862842

843+
```{r, echo=TRUE}
844+
list_fstat_functions()
845+
```
846+
863847
C'est à vous de jouer ! Proposez un tableau résumé proposant la médiane, la longueur minimale, la longueur maximale et le nombre d'observations de la longueur de la carapace des crabes groupée par espèce et par sexe. Utilisez les fonctions `speedy` et les fonctions `fast`. Utilisez de plus le pipe natif de R. Les variables de `crabs` à votre disposition sont : `r names(crabs)`
864848

865849
```{r summarise_h3, exercise = TRUE}

inst/tutorials/C01La_confusion/C01La_confusion.Rmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ author: "Guyliann Engels & Philippe Grosjean"
44
description: "**SDD III Module 1** Matrices de confusion et métriques qui en découlent."
55
tutorial:
66
id: "C01La_confusion"
7-
version: 2.0.0/5
7+
version: 2.1.0/5
88
output:
99
learnr::tutorial:
1010
progressive: true

0 commit comments

Comments
 (0)