-
Notifications
You must be signed in to change notification settings - Fork 57
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
base: master
Are you sure you want to change the base?
Conversation
@@ -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`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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()`). |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
.
There was a problem hiding this comment.
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 !)
There was a problem hiding this comment.
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?
Qq conseils en plus pour la gestion de la RAM dans R
close #328