Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ajouts conseils gestion RAM #335

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

clerousset
Copy link
Contributor

@clerousset clerousset commented May 27, 2021

Qq conseils en plus pour la gestion de la RAM dans R

close #328

@@ -137,6 +137,46 @@ La saturation de la mémoire vive est souvent provoquée par un utilisateur qui
| Fichier `.xls` | `read_excel()` | `readxl` | `n_max` |
| Fichier `.ods` | `read_ods()` | `readODS` | `range` |

### Choisir les classes de colonne les plus économes

Chaque colonne d'un `data.frame` a une classe qui sont plus ou moins gourmandes en mémoire. Grosso modo, dans `R`, les classes `integer`, `logical` et `factor` sont économes alors que les classes `numeric` et `character` prennent beaucoup de cases mémoires. Ainsi il est souvent recommandé de transformer une colonne de `character` en `factor` et de vérifier si une colonne de `numeric` ne peut pas être passée en `integer`.
Copy link
Contributor

@oliviermeslin oliviermeslin May 28, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Chaque colonne d'un `data.frame` a une classe qui sont plus ou moins gourmandes en mémoire. Grosso modo, dans `R`, les classes `integer`, `logical` et `factor` sont économes alors que les classes `numeric` et `character` prennent beaucoup de cases mémoires. Ainsi il est souvent recommandé de transformer une colonne de `character` en `factor` et de vérifier si une colonne de `numeric` ne peut pas être passée en `integer`.
Chaque colonne d'un `data.frame` a une classe qui définit sa nature informatique. Les principales classes de `R` sont les suivantes : `integer` (nombre entier), `numeric` (nombre réel), `character` (chaîne de caractères), `logical` (valeur logique) et `factor` (variable catégorielle). Or, certaines classes sont plus gourmandes en mémoire que d'autres. Dans `R`, les classes `integer`, `logical` et `factor` sont économes alors que les classes `numeric` et `character` utilisent davantage de mémoire. C'est pourquoi il peut être tuile de transformer une colonne de `character` en `factor` (avec la fonction `as.factor()`) et de vérifier si une colonne de classe `numeric` ne peut pas être transformée en `integer` (avec la fonction `as.integer()`).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Très bien, mais il manque des exemples simples. Suggestion: utiliser doremifasolData et le COG pour convertir des noms de communes/départements/régions en factor.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ben c'est marrant, il y aussi la recommandation exactement opposée dans la communauté R : éviter d'utiliser les factors car trop de chausse-trappe 😄
Content que stringsAsFactors soit passé à FALSE.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bien d'accord avec @RLesur ! Je hais les facteurs et ne les utilise que lorsque j'y suis obligé (faire du ggplot2, en l’occurrence). La différence entre la valeur sous-jacente et la valeur d'affichage est trop perturbante pour moi. Si on veut recommander l'utilisation des factor, il va falloir expliquer en détail comment les manipuler dans un autre endroit, parce que c'est loin d'être si évident que ça... (Notamment quand il faut les réordonner, quel enfer !)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@clerousset : que proposes-tu sur ce paragraphe? Ma reformulation te convient-elle?

01_R_Insee/Fiche_utiliser_ressources.Rmd Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ajout fiche gerer ressources
4 participants