Spécificités de SAS par rapport à R
Spécificités de SAS par rapport à R
.
Voici une liste non-exhaustive de spécificités de SAS par rapport à R à connaître.
SAS | R |
---|---|
SAS n’est pas sensible à la casse. Un même nom de variable en majuscule et en minuscule désigne une même variable en SAS . |
R est sensible à la casse. Un même nom de variable en majuscule et en minuscule désigne deux variables différentes en R . |
SAS est un logiciel propriétaire. |
|
SAS est un langage centralisé. | R un langage décentralisé. |
SAS tend à ne proposer qu’une ou deux solutions. | R propose plusieurs façons de procéder (différents environnements, différents packages, etc.) |
Le langage et l’IDE (Integrated Development Environment, interface graphique) ne sont pas séparés en SAS . |
R est le langage / logiciel, à ne pas confondre avec RStudio, qui est uniquement un IDE (Integrated Development Environment, interface graphique), parmi d’autres. |
Vectorisation plutôt que boucle. | |
Macro | Fonctions |
Gestion de la mémoire spécifique : shallow / deep copy |
1 Logiciel libre
De par son statut de logiciel libre, de multiples extensions en R
existent (packages). L’usage des packages :
- peut être un atout, car les packages permettent de réaliser plus facilement des choses complexes ;
- peut aussi être source de problèmes, d’abord de maintenance du fait des dépendances (une mise-à-jour peut casser les dépendances), ensuite du fait que des packages peuvent disparaître ou ne plus être maintenus au cours du temps, engendrant des coûts de maintenance de code ;
- peut engendrer des problèmes de rétrocompatibilité (un code écrit dans le passé ne fonctionne plus suite à une mise-à-jour) : il convient d’être conscient de ces considérations avant d’utiliser aveuglément des packages.
Pour en savoir plus sur les packages en R
:
2 Gestion de la mémoire
La gestion de la mémoire est différente entre les logiciels. R
importe l’ensemble des données en mémoire vive, SAS
en copie une partie sur le disque dur. Ceci a plusieurs implications pour le travail statistique :
- si le volume des données excède la mémoire vive, il n’est pas possible de les traiter nativement en
R
. Il faut alors utiliser des stratégies alternatives ; - il faut être parcimonieux sur le nombre de colonnes à inclure dans les bases de données en
R
. Par exemple, il vaut mieux recréer dans le programme les variables explicatives faciles à obtenir plutôt que les inclure dans la base de données, où elles occupent de la place et accaparent de la mémoire vive.
Pour en savoir plus sur la façon dont R
gère les données en mémoire vive : https://adv-r.hadley.nz/names-values.html.
Quelles solutions adopter dans le cas où les données à manipuler ne tiennent pas en mémoire vive de l’ordinateur ?
- chercher à réduire la taille de la base de données en supprimant des colonnes inutiles ;
- chercher à modifier le processus de production pour le rendre moins gourmand en mémoire ;
- augmenter la mémoire vive de son ordinateur ;
- utiliser les packages
data.table
, optimisé pour les grosses volumétries, etarrow / duckdb
qui peuvent gérer des données excédant la mémoire vive.