R initiation pour utilisateurs SAS
Objectifs pédagogiques
- Manipuler une session de travail R
- Distinguer les objets R
- Mettre en œuvre des fonctions de R pour manipuler un jeu de données et faire des liens avec les fonctions SAS usuelles
Programme détaillé
Le livre R pour la statistique et la science des données vous sera offert lors de cette formation
La formation est consacrée à la présentation des fonctionnalités de base du logiciel R, accompagnée d’exemples d’utilisations. Les stagiaires mettront en œuvre le logiciel, sous la forme d’exercices d’application.
Généralités 1h
- Présentation et installation du logiciel R et de Rstudio
- Prise en main et premiers pas (packages, aide)
Les objets de R 2h
- Vecteurs
- Matrices
- Facteurs
- Listes
- Data frames
Manipulation de données 3h
- Importation et exportation de données
- Création et recodage de variables
- Sélection et regroupements de données
Initiation aux graphes 3h
- Manipulation des fenêtres graphiques
- Réalisation et personnalisation de graphes de base avec R
Premières analyses de statistique descriptive avec R 2h
Présentation de R markdown pour générer des rapports 1h
Public visé
Utilisateurs de SAS souhaitant travailler avec le logiciel R : statisticiens, data analysts, chargés d’études…
Prérequis
Maîtrise de SAS.
Approche pédagogique
Calculés à partir de 17 avis recueillis depuis 23/04/2023, lors de 2 sessions de cette formation.
De SAS à R : équivalences et faux amis
Passer de SAS à R ne demande pas de réapprendre la statistique, mais de changer de façon de penser les données. Une bonne partie des procédures SAS ont un équivalent direct en R. Les vraies difficultés se cachent ailleurs : dans le traitement des valeurs manquantes, et dans le passage d’une logique ligne à ligne à une logique vectorielle.
Les équivalences de base
Avec les fonctions de R de base :
PROC CONTENTS:str(enquete)pour la structure,summary(enquete)pour un premier résumé ;PROC PRINT:head(enquete)pour les premières lignes ;PROC SORT:enquete[order(enquete$region, -enquete$revenu), ];PROC FREQ:table(enquete$region, enquete$diplome), etprop.table()pour les pourcentages ;PROC MEANSavecCLASS:tapply(enquete$revenu, enquete$region, mean)ouaggregate();MERGEavecBY:merge(clients, commandes, by = "id_client"), sans tri préalable ;PROC FORMAT: les facteurs, avecfactor(x, levels = ..., labels = ...).
Le faux ami principal : la valeur manquante
En SAS, une valeur numérique manquante est considérée comme plus petite que n’importe quel nombre. La condition if age < 18 retient donc aussi les âges manquants, un piège bien connu. En R, la valeur manquante NA se propage : NA < 18 vaut NA, ni vrai ni faux. Les conséquences sont multiples :
mean(enquete$age) # NA dès qu'une valeur manque
mean(enquete$age, na.rm = TRUE) # moyenne sur les valeurs renseignées
enquete[enquete$age < 18, ] # les âges manquants donnent des lignes vides (NA)
subset(enquete, age < 18) # subset() écarte les NA
Aucune des deux conventions n’est meilleure que l’autre, mais un programme traduit ligne à ligne de SAS vers R peut changer de résultat sans le moindre message d’erreur.
Penser en vecteurs
L’étape DATA exécute ses instructions une ligne après l’autre. En R, on écrit une opération sur une colonne entière, et elle s’applique à tous les éléments à la fois :
enquete$tranche <- ifelse(enquete$age >= 18, "majeur", "mineur")
Les autres différences sont plus vite assimilées : R distingue majuscules et minuscules (Age et age sont deux objets différents), numérote à partir de 1, et garde toutes les tables en mémoire, là où SAS les lit sur disque.
La suite du parcours, R intermédiaire, aborde notamment l’environnement tidyverse.