Spécificités de SAS par rapport à R

SAS
R

Spécificités de SAS par rapport à R.

Auteur·rice·s
Affiliations

Nassab ABDALLAH

Damien EUZENAT

Date de publication

Invalid Date

Modifié

2 juillet 2024

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.

R est un logiciel libre :

  • gratuit

  • librement reproductible

  • modifiable et diffusable

  • son code source est ouvert

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, et arrow / duckdb qui peuvent gérer des données excédant la mémoire vive.