{"id":9288,"date":"2026-10-14T18:02:28","date_gmt":"2026-10-14T18:02:28","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/comment-exporter-donnees-sas-vers-excel-exemples\/"},"modified":"2026-10-14T18:02:28","modified_gmt":"2026-10-14T18:02:28","slug":"comment-exporter-donnees-sas-vers-excel-exemples","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=comment-exporter-donnees-sas-vers-excel-exemples","title":{"rendered":"Comment exporter des donn\u00e9es de SAS vers Excel (avec exemples)"},"content":{"rendered":"<p>Dans le paysage contemporain du traitement statistique et de la science des donn\u00e9es, l&rsquo;\u00e9cosyst\u00e8me logiciel d\u00e9velopp\u00e9 par le <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.sas.com\">SAS Institute<\/a> demeure une r\u00e9f\u00e9rence incontournable au sein des institutions acad\u00e9miques, des laboratoires de recherche clinique et des grandes organisations industrielles. Dot\u00e9 d&rsquo;une robustesse \u00e9prouv\u00e9e pour la manipulation de volum\u00e9tries massives et l&rsquo;ex\u00e9cution d&rsquo;analyses inf\u00e9rentielles sophistiqu\u00e9es, SAS structure ses calculs autour d&rsquo;un format propri\u00e9taire hautement optimis\u00e9, le fichier SAS7BDAT. Cependant, l&rsquo;isolement technique des environnements de calcul haute performance entre souvent en tension avec les imp\u00e9ratifs de diss\u00e9mination, de r\u00e9vision collaborative et de communication pluridisciplinaire qui caract\u00e9risent la recherche empirique moderne. C&rsquo;est pr\u00e9cis\u00e9ment \u00e0 cette jonction critique que s&rsquo;impose l&rsquo;utilisation des tableurs \u00e9lectroniques, au premier rang desquels figure Microsoft Excel, instrument omnipr\u00e9sent d&rsquo;exploration visuelle et d&rsquo;\u00e9change d&rsquo;informations tabulaires.<\/p>\n<p>L&rsquo;exportation de donn\u00e9es depuis SAS vers Microsoft Excel ne repr\u00e9sente pas une simple op\u00e9ration m\u00e9canique de conversion de format, mais constitue une \u00e9tape m\u00e9thodologique fondamentale dans la cha\u00eene de valeur du traitement des donn\u00e9es. Transf\u00e9rer un jeu de donn\u00e9es implique de garantir une fid\u00e9lit\u00e9 absolue de la structure tabulaire, de pr\u00e9server la typologie exacte des variables quantitatives et cat\u00e9gorielles, de maintenir la coh\u00e9rence temporelle des formats calendaires et de documenter avec une rigueur irr\u00e9prochable les m\u00e9tadonn\u00e9es associ\u00e9es. Toute alt\u00e9ration non ma\u00eetris\u00e9e lors de cette passerelle logicielle risque d&rsquo;engendrer des erreurs de calcul ult\u00e9rieures, des d\u00e9calages d&rsquo;indexation ou des pertes d&rsquo;information susceptibles de compromettre la reproductibilit\u00e9 des r\u00e9sultats scientifiques et la validit\u00e9 des conclusions publi\u00e9es.<\/p>\n<p>Le pr\u00e9sent trait\u00e9 m\u00e9thodologique a pour vocation de fournir un guide exhaustif, exhaustif et rigoureusement document\u00e9 sur les techniques d&rsquo;exportation de donn\u00e9es depuis l&rsquo;environnement SAS vers Microsoft Excel. En abordant successivement les fondements syntaxiques de la proc\u00e9dure PROC EXPORT, le param\u00e9trage avanc\u00e9 des pilotes d&rsquo;acc\u00e8s aux bases de donn\u00e9es, l&rsquo;architecture multi-feuilles, le traitement d\u00e9licat des valeurs manquantes et des jeux de caract\u00e8res \u00e9tendus, ainsi que les alternatives offertes par le syst\u00e8me de restitution ODS (Output Delivery System), ce document offre aux biostatisticiens, chercheurs et analystes de donn\u00e9es les comp\u00e9tences n\u00e9cessaires pour concevoir des flux de travail robustes, automatis\u00e9s et conformes aux plus hauts standards d&rsquo;int\u00e9grit\u00e9 num\u00e9rique.<\/p>\n<h2>1. Introduction m\u00e9thodologique \u00e0 l&rsquo;exportation de donn\u00e9es SAS vers Microsoft Excel<\/h2>\n<h3>1.1 N\u00e9cessit\u00e9 de l&rsquo;interop\u00e9rabilit\u00e9 entre SAS et les tableurs dans la recherche<\/h3>\n<p>Le r\u00f4le pivot d\u00e9volu \u00e0 la suite logicielle SAS dans les infrastructures de recherche internationales repose sur sa capacit\u00e9 \u00e0 ex\u00e9cuter des proc\u00e9dures math\u00e9matiques complexes, \u00e0 manipuler des mod\u00e8les lin\u00e9aires g\u00e9n\u00e9ralis\u00e9s \u00e0 effets mixtes et \u00e0 traiter des donn\u00e9es d&rsquo;essais cliniques sous des protocoles de conformit\u00e9 particuli\u00e8rement rigoureux, \u00e0 l&rsquo;image des normes \u00e9tablies par la Food and Drug Administration (FDA) des \u00c9tats-Unis. N\u00e9anmoins, la complexit\u00e9 intrins\u00e8que de l&rsquo;interface de programmation SAS et le co\u00fbt substantiel de ses licences logicielles limitent naturellement son d\u00e9ploiement \u00e0 un groupe restreint de statisticiens sp\u00e9cialis\u00e9s. \u00c0 l&rsquo;inverse, le tableur <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.microsoft.com\/fr-fr\/microsoft-365\/excel\">Microsoft Excel<\/a> b\u00e9n\u00e9ficie d&rsquo;une universalit\u00e9 quasi absolue au sein de la communaut\u00e9 scientifique, offrant une interface graphique intuitive, une manipulation directe des matrices de cellules et des capacit\u00e9s de visualisation rapide adapt\u00e9es aux r\u00e9unions d&rsquo;arbitrage m\u00e9thodologique et aux revues d&rsquo;avancement de projets.<\/p>\n<p>Les besoins de diffusion des r\u00e9sultats aupr\u00e8s de chercheurs, de cliniciens, de gestionnaires de projets et de collaborateurs non programmeurs imposent la mise en place d&rsquo;une passerelle fluide et bidirectionnelle. Les destinataires finaux des synth\u00e8ses quantitatives requi\u00e8rent fr\u00e9quemment des donn\u00e9es sous une forme imm\u00e9diatement manipulable, leur permettant d&rsquo;effectuer des tris ad hoc, de concevoir des graphiques exploratoires ou d&rsquo;int\u00e9grer des tableaux r\u00e9capitulatifs dans des manuscrits scientifiques. L&rsquo;exportation de donn\u00e9es SAS vers des classeurs Excel r\u00e9pond \u00e0 cet imp\u00e9ratif de d\u00e9mocratisation analytique tout en d\u00e9chargeant le statisticien principal des requ\u00eates d&rsquo;interrogation r\u00e9currentes de premier niveau.<\/p>\n<p>Ce transfert ne saurait toutefois s&rsquo;effectuer au d\u00e9triment de l&rsquo;int\u00e9grit\u00e9 des structures tabulaires. Le passage d&rsquo;un environnement strictement typ\u00e9, r\u00e9gi par le moteur de base de donn\u00e9es relationnelle interne de SAS, \u00e0 une grille de cellules semi-structur\u00e9e propre \u00e0 Excel pr\u00e9sente des risques m\u00e9thodologiques manifestes. La pr\u00e9servation de l&rsquo;atomicit\u00e9 des champs, la distinction claire entre valeurs num\u00e9riques et cha\u00eenes alphanum\u00e9riques, ainsi que la conservation de l&rsquo;ordre d&rsquo;ordonnancement des observations constituent des imp\u00e9ratifs absolus. La transition doit s&rsquo;op\u00e9rer sans injection d&rsquo;artefacts d&rsquo;arrondi, sans modification des d\u00e9limiteurs d\u00e9cimaux et sans corruption des identifiants alphanum\u00e9riques, dont la troncature \u00e9ventuelle fausserait l&rsquo;appariement ult\u00e9rieur des donn\u00e9es.<\/p>\n<p>Enfin, les exigences contemporaines de la science ouverte et de la reproductibilit\u00e9 computationnelle impliquent que l&rsquo;archivage sous des formats universellement consultables soit rigoureusement document\u00e9. Bien que le format propri\u00e9taire SAS7BDAT soit p\u00e9renne au sein de son propre \u00e9cosyst\u00e8me, le format de feuille de calcul normalis\u00e9, standardis\u00e9 sous la sp\u00e9cification internationale <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.iso.org\/standard\/71691.html\">ISO\/IEC 29500<\/a> (Office Open XML), garantit une accessibilit\u00e9 multi-plateforme \u00e0 long terme. Cette standardisation assure que des donn\u00e9es collig\u00e9es dans le cadre de protocoles longitudinaux demeurent d\u00e9chiffrables et auditables par des \u00e9valuateurs ind\u00e9pendants, ind\u00e9pendamment de la disponibilit\u00e9 imm\u00e9diate d&rsquo;une station de travail SAS op\u00e9rationnelle.<\/p>\n<h3>1.2 Vue d&rsquo;ensemble des approches programmatiques d&rsquo;exportation<\/h3>\n<p>Pour orchestrer le transfert des structures tabulaires vers l&rsquo;environnement Excel, le programmeur SAS dispose principalement de deux paradigmes conceptuels distincts : la proc\u00e9dure d&rsquo;\u00e9change de donn\u00e9es universelle, mat\u00e9rialis\u00e9e par la commande PROC EXPORT, et le sous-syst\u00e8me de restitution graphique et tabulaire, d\u00e9sign\u00e9 sous l&rsquo;acronyme ODS (Output Delivery System). Ces deux architectures r\u00e9pondent \u00e0 des finalit\u00e9s m\u00e9thodologiques radicalement divergentes et mobilisent des moteurs internes dissemblables. Comprendre cette dichotomie structurelle s&rsquo;av\u00e8re indispensable pour s\u00e9lectionner la strat\u00e9gie d&rsquo;exportation optimale en fonction des contraintes de production et des objectifs d&rsquo;analyse.<\/p>\n<p>La proc\u00e9dure PROC EXPORT a \u00e9t\u00e9 sp\u00e9cifiquement con\u00e7ue comme un composant d&rsquo;extraction, de transformation et de chargement (ETL). Son objectif primaire r\u00e9side dans la s\u00e9rialisation directe du contenu brut d&rsquo;une table SAS sous la forme d&rsquo;un tableau \u00e0 deux dimensions dans un fichier externe. Elle se caract\u00e9rise par une vitesse d&rsquo;ex\u00e9cution \u00e9lev\u00e9e, une consommation minimale de m\u00e9moire tampon et une adh\u00e9rence stricte aux sch\u00e9mas de donn\u00e9es. \u00c0 l&rsquo;oppos\u00e9, le syst\u00e8me ODS, et en particulier sa destination ODS EXCEL, op\u00e8re au niveau de la pr\u00e9sentation visuelle. ODS intercepte le flux de sortie des proc\u00e9dures analytiques (telles que PROC MEANS, PROC FREQ ou PROC REG) pour g\u00e9n\u00e9rer des classeurs \u00e9labor\u00e9s, enrichis de formats typographiques, de styles chromatiques, d&rsquo;en-t\u00eates hi\u00e9rarchiques et de m\u00e9tadonn\u00e9es visuelles. Tandis que PROC EXPORT extrait la matrice de donn\u00e9es sous-jacente, ODS formalise un rapport de synth\u00e8se destin\u00e9 \u00e0 la lecture humaine.<\/p>\n<p>L&rsquo;\u00e9valuation comparative des formats cibles constitue le second axe d\u00e9cisionnel. Historiquement, SAS prenait en charge le format binaire propri\u00e9taire Microsoft Excel 97-2003 (.xls), structur\u00e9 selon la norme BIFF8 (Binary Interchange File Format). Ce format ancien s&rsquo;accompagne de contraintes s\u00e9v\u00e8res, notamment un plafonnement strict \u00e0 65 536 lignes par feuille. \u00c0 l&rsquo;inverse, le format contemporain .xlsx repose sur une archive compress\u00e9e de fichiers XML normalis\u00e9s, autorisant jusqu&rsquo;\u00e0 1 048 576 lignes et offrant une compatibilit\u00e9 totale avec les syst\u00e8mes 64 bits. Enfin, le format texte d\u00e9limit\u00e9 par des virgules (.csv) repr\u00e9sente l&rsquo;alternative d&rsquo;interop\u00e9rabilit\u00e9 maximale, s&rsquo;affranchissant de toute d\u00e9pendance vis-\u00e0-vis des composants logiciels Microsoft, bien qu&rsquo;il sacrifie les fonctionnalit\u00e9s avanc\u00e9es telles que la gestion des feuilles multiples au sein d&rsquo;un fichier unique.<\/p>\n<p>Les consid\u00e9rations relatives aux versions du logiciel SAS conditionnent \u00e9galement le choix des instructions. Sous SAS 9.4 (notamment \u00e0 partir de la version de maintenance 9.4M2), l&rsquo;int\u00e9gration du moteur natif XLSX a consid\u00e9rablement fluidifi\u00e9 l&rsquo;exportation en \u00e9liminant le recours obligatoire aux composants tiers Microsoft Access Database Engine (ACE). Dans les architectures infonuagiques distribu\u00e9es, telles que SAS Viya, l&rsquo;abstraction de la couche de stockage modifie la gestion des chemins de fichiers, exigeant une manipulation prudente des biblioth\u00e8ques de serveurs de donn\u00e9es (caslibs). Pour les utilisateurs de SAS OnDemand for Academics, l&rsquo;ex\u00e9cution s&rsquo;effectue sur des serveurs distants sous environnement Linux, ce qui impose de composer avec des arborescences de r\u00e9pertoires virtualis\u00e9es et des contraintes strictes d&rsquo;acc\u00e8s aux syst\u00e8mes de fichiers de l&rsquo;utilisateur distant.<\/p>\n<h2>2. Fondements et syntaxe canonique de la proc\u00e9dure PROC EXPORT<\/h2>\n<h3>2.1 D\u00e9composition \u00e9l\u00e9mentaire de la commande PROC EXPORT<\/h3>\n<p>La syntaxe de la proc\u00e9dure PROC EXPORT ob\u00e9it \u00e0 un agencement d\u00e9claratif strict, con\u00e7u pour expliciter sans ambigu\u00eft\u00e9 la table de donn\u00e9es source, le r\u00e9ceptacle physique externe et les modalit\u00e9s de transmission. L&rsquo;instruction initiale d\u00e9bute invariablement par l&rsquo;invocation du mot-cl\u00e9 PROC EXPORT, imm\u00e9diatement suivi de param\u00e8tres positionnels ou nomm\u00e9s d\u00e9finissant le p\u00e9rim\u00e8tre de la transaction. Cette structure d\u00e9clarative garantit la pr\u00e9visibilit\u00e9 de l&rsquo;op\u00e9ration et permet \u00e0 l&rsquo;interpr\u00e9teur de commandes SAS de valider l&rsquo;existence des objets en m\u00e9moire avant d&rsquo;initier toute \u00e9criture sur le sous-syst\u00e8me de disques.<\/p>\n<p>L&rsquo;argument DATA= joue un r\u00f4le n\u00e9vralgique en d\u00e9signant la table SAS source qui doit faire l&rsquo;objet de l&rsquo;extraction. Cette table peut r\u00e9sider au sein de la biblioth\u00e8que de travail temporaire WORK (auquel cas la sp\u00e9cification d&rsquo;un pr\u00e9fixe est facultative, bien que formellement recommand\u00e9e sous la forme DATA=WORK.MaTable), ou provenir d&rsquo;une biblioth\u00e8que permanente pr\u00e9alablement assign\u00e9e via une instruction LIBNAME (par exemple, DATA=Projet.Patients). L&rsquo;instruction accepte \u00e9galement des options de table int\u00e9gr\u00e9es entre parenth\u00e8ses, permettant d&rsquo;appliquer des filtres d&rsquo;observations ou des s\u00e9lections de colonnes directement \u00e0 la source avant l&rsquo;ex\u00e9cution du processus d&rsquo;exportation.<\/p>\n<p>L&rsquo;option OUTFILE= explicite la trajectoire physique compl\u00e8te et le nommage du fichier qui sera cr\u00e9\u00e9 ou modifi\u00e9 sur le syst\u00e8me de stockage h\u00f4te. Cette cha\u00eene de caract\u00e8res doit imp\u00e9rativement \u00eatre d\u00e9limit\u00e9e par des guillemets doubles ou simples et comporter l&rsquo;extension de fichier ad\u00e9quate correspondant au pilote retenu. L&rsquo;absence de guillemets ou l&rsquo;omission de l&rsquo;extension de fichier d\u00e9clenche des erreurs de syntaxe fatales au niveau de l&rsquo;analyseur lexical de SAS, interrompant pr\u00e9matur\u00e9ment le traitement s\u00e9quentiel du programme.<\/p>\n<p>\u00c0 l&rsquo;instar de la majorit\u00e9 des proc\u00e9dures proc\u00e9durales de SAS, le bloc de commande doit obligatoirement \u00eatre clos par l&rsquo;instruction RUN. Cette commande ordonne au compilateur d&rsquo;achever la phase de r\u00e9solution macro-structurelle, de verrouiller les ressources d&rsquo;entr\u00e9e-sortie et d&rsquo;ex\u00e9cuter l&rsquo;\u00e9criture sur le disque. En amont imm\u00e9diat de cette ex\u00e9cution, une gouvernance rigoureuse des permissions du syst\u00e8me h\u00f4te s&rsquo;av\u00e8re indispensable : l&rsquo;utilisateur ex\u00e9cutant la session SAS doit disposer de privil\u00e8ges explicites d&rsquo;\u00e9criture et de modification sur le r\u00e9pertoire de destination sp\u00e9cifi\u00e9 dans l&rsquo;argument OUTFILE=, sous peine d&rsquo;interruption abrupte du programme assortie de messages d&rsquo;erreur d&rsquo;acc\u00e8s refus\u00e9 au niveau du journal d&rsquo;ex\u00e9cution.<\/p>\n<h3>2.2 Ma\u00eetrise des options REPLACE et SHEET<\/h3>\n<p>La flexibilit\u00e9 et la s\u00e9curit\u00e9 transactionnelle de la proc\u00e9dure PROC EXPORT reposent en grande partie sur l&rsquo;utilisation conjointe des options structurelles REPLACE et SHEET. L&rsquo;option REPLACE indique au moteur d&rsquo;exportation qu&rsquo;il est formellement autoris\u00e9 \u00e0 \u00e9craser une ressource physique pr\u00e9existante portant un nom identique \u00e0 celui sp\u00e9cifi\u00e9 dans l&rsquo;argument OUTFILE=. Si l&rsquo;instruction REPLACE est omise et que le fichier cible est d\u00e9j\u00e0 pr\u00e9sent sur le support de stockage, SAS refuse d&rsquo;alt\u00e9rer le fichier d&rsquo;origine et consigne une alerte critique dans le journal syst\u00e8me (SAS Log), suspendant l&rsquo;exportation pour pr\u00e9venir toute destruction accidentelle de donn\u00e9es ant\u00e9rieures.<\/p>\n<p>Le comportement de l&rsquo;option REPLACE pr\u00e9sente toutefois une nuance capitale lorsqu&rsquo;elle est combin\u00e9e avec le pilote DBMS=XLSX. Dans ce contexte pr\u00e9cis, REPLACE n&rsquo;efface pas syst\u00e9matiquement l&rsquo;int\u00e9gralit\u00e9 du classeur Excel pr\u00e9existant s&rsquo;il contient plusieurs onglets : elle r\u00e9initialise sp\u00e9cifiquement l&rsquo;onglet d\u00e9sign\u00e9 par l&rsquo;instruction SHEET=, laissant les autres feuilles intactes, sauf si le fichier n&rsquo;existait pas pr\u00e9alablement, auquel cas un nouveau classeur est int\u00e9gralement instanci\u00e9. Cette subtilit\u00e9 op\u00e9rationnelle permet d&rsquo;utiliser l&rsquo;option REPLACE de mani\u00e8re s\u00e9lective pour mettre \u00e0 jour une section pr\u00e9cise d&rsquo;un classeur analytique sans corrompre les feuilles adjacentes d\u00e9di\u00e9es \u00e0 d&rsquo;autres m\u00e9triques statistiques.<\/p>\n<p>L&rsquo;argument SHEET= d\u00e9termine avec pr\u00e9cision le libell\u00e9 de l&rsquo;onglet r\u00e9cepteur au sein du classeur Excel. La d\u00e9signation s&rsquo;effectue via une cha\u00eene de caract\u00e8res encadr\u00e9e de guillemets, respectant les normes nominales de Microsoft Excel (longueur maximale de 31 caract\u00e8res, interdiction des caract\u00e8res r\u00e9serv\u00e9s tels que les deux-points, les barres obliques ou les points d&rsquo;interrogation). En l&rsquo;absence de l&rsquo;instruction SHEET=, le comportement par d\u00e9faut de SAS consiste \u00e0 baptiser la feuille de calcul cr\u00e9\u00e9e du nom exact de la table SAS d&rsquo;origine, ou sous l&rsquo;identifiant g\u00e9n\u00e9rique \u00ab\u00a0Sheet1\u00a0\u00bb selon les versions et pilotes sous-jacents mobilis\u00e9s.<\/p>\n<p>La pr\u00e9vention des pertes de donn\u00e9es accidentelles lors d&rsquo;ex\u00e9cutions successives d&rsquo;un m\u00eame script analytique requiert une planification rigoureuse de ces deux arguments. Lors de flux de travail it\u00e9ratifs ou de traitements par lots (batch processing), l&rsquo;omission involontaire de l&rsquo;option SHEET= coupl\u00e9e \u00e0 un emploi syst\u00e9matique de REPLACE peut conduire \u00e0 des \u00e9crasements s\u00e9quentiels destructeurs, o\u00f9 seule la derni\u00e8re table trait\u00e9e subsiste dans le document final. Ma\u00eetriser l&rsquo;articulation entre l&rsquo;\u00e9crasement global du fichier et la mise \u00e0 jour granulaire des onglets garantit la coh\u00e9rence structurelle des livrables sans risque de r\u00e9gression informationnelle.<\/p>\n<h2>3. Param\u00e9trage technique de l&rsquo;instruction OUTFILE et gestion des chemins d&rsquo;acc\u00e8s<\/h2>\n<h3>3.1 Syntaxe des chemins sous Windows, Linux et architectures infonuagiques<\/h3>\n<p>La configuration de la cha\u00eene de caract\u00e8res assign\u00e9e \u00e0 l&rsquo;option OUTFILE= exige une compr\u00e9hension approfondie des particularit\u00e9s structurales des syst\u00e8mes d&rsquo;exploitation sous-jacents h\u00e9bergeant le moteur SAS. Une erreur fr\u00e9quente commise par les analystes r\u00e9side dans la transposition na\u00efve de chemins de r\u00e9pertoires sans \u00e9gard pour les conventions de nommage propres \u00e0 chaque environnement. Sous les syst\u00e8mes d&rsquo;exploitation Microsoft Windows, l&rsquo;arborescence des fichiers repose historiquement sur l&rsquo;utilisation de lettres de lecteur suivies de barres obliques inverses (antislashs), comme l&rsquo;illustre la syntaxe typique \u00ab\u00a0C:RechercheProjetAResultats.xlsx\u00a0\u00bb.<\/p>\n<p>\u00c0 l&rsquo;oppos\u00e9, les architectures de type Unix et les distributions Linux \u2014 sur lesquelles s&rsquo;appuient la grande majorit\u00e9 des serveurs d&rsquo;entreprise SAS et les environnements infonuagiques modernes \u2014 emploient exclusivement des barres obliques conventionnelles (slashs) partant de la racine du syst\u00e8me, adoptant une structure telle que \u00ab\u00a0\/sas\/data\/recherche\/projet_a\/resultats.xlsx\u00a0\u00bb. Il convient de souligner que SAS sous Windows tol\u00e8re g\u00e9n\u00e9ralement les barres obliques conventionnelles au sein des cha\u00eenes d&rsquo;acc\u00e8s aux fichiers, ce qui constitue une bonne pratique de programmation portable permettant d&rsquo;assurer la compatibilit\u00e9 transversale du code entre diff\u00e9rents syst\u00e8mes sans n\u00e9cessiter de refactorisation textuelle.<\/p>\n<p>L&rsquo;utilisation de la plateforme p\u00e9dagogique et de recherche <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/welcome.oda.sas.com\/\">SAS OnDemand for Academics<\/a> introduit un niveau d&rsquo;abstraction suppl\u00e9mentaire. L&rsquo;utilisateur op\u00e8re au sein d&rsquo;une session de virtualisation h\u00e9berg\u00e9e dans le nuage informatique de SAS Institute. Dans ce contexte, l&rsquo;arborescence de stockage est strictement cloisonn\u00e9e et les chemins de fichiers doivent obligatoirement refl\u00e9ter la structure interne du compte utilisateur distant, mat\u00e9rialis\u00e9e sous la forme \u00ab\u00a0\/home\/uXXXXXX\/mon_repertoire\/sortie.xlsx\u00a0\u00bb, o\u00f9 \u00ab\u00a0uXXXXXX\u00a0\u00bb correspond \u00e0 l&rsquo;identifiant unique assign\u00e9 lors de l&rsquo;enregistrement de l&rsquo;acc\u00e8s. Tenter de sp\u00e9cifier un chemin pointant vers un disque dur local (tel qu&rsquo;un lecteur \u00ab\u00a0C:\u00a0\u00bb) au sein d&rsquo;une session SAS OnDemand aboutit immanquablement \u00e0 une rupture d&rsquo;ex\u00e9cution, le serveur distant n&rsquo;ayant aucune passerelle d&rsquo;acc\u00e8s direct au sous-syst\u00e8me de stockage de la machine cliente.<\/p>\n<p>Par ailleurs, la distinction entre chemins absolus et chemins relatifs m\u00e9rite une attention singuli\u00e8re. Si un chemin absolu garantit un pointage univoque vers l&#8217;emplacement physique du fichier sur le serveur, il pr\u00e9sente l&rsquo;inconv\u00e9nient majeur de fragiliser le script face \u00e0 tout d\u00e9placement de l&rsquo;arborescence globale. Les chemins relatifs, calcul\u00e9s par rapport au r\u00e9pertoire de travail courant d\u00e9fini dans la session, offrent une plus grande modularit\u00e9 mais exigent une v\u00e9rification rigoureuse du r\u00e9pertoire actif via la fonction syst\u00e8me GETOPTION(&lsquo;WORK&rsquo;) ou des commandes de navigation d&rsquo;environnement. Enfin, la pr\u00e9sence d&rsquo;espaces typographiques ou de caract\u00e8res diacritiques (accents, c\u00e9dilles) au sein des noms de r\u00e9pertoires constitue une source r\u00e9currente d&rsquo;instabilit\u00e9 logicielle. L&rsquo;encadrement scrupuleux des chemins par des guillemets et l&rsquo;adoption d&rsquo;une nomenclature normalis\u00e9e reposant sur des traits d&rsquo;union bas (underscores) s&rsquo;imposent pour pr\u00e9munir les scripts contre les rejets de lecture.<\/p>\n<h3>3.2 Utilisation des r\u00e9f\u00e9rences globales et macro-variables de chemin<\/h3>\n<p>Afin de maximiser la maintenabilit\u00e9, l&rsquo;\u00e9volutivit\u00e9 et l&rsquo;\u00e9l\u00e9gance architecturale des programmes SAS, l&rsquo;ancrage direct en dur (hard-coding) des chemins d&rsquo;acc\u00e8s au sein de l&rsquo;instruction OUTFILE= doit \u00eatre formellement banni au profit de l&rsquo;utilisation de macro-variables d&rsquo;environnement. L&rsquo;instruction %LET constitue \u00e0 cet \u00e9gard l&rsquo;outil fondamental permettant de centraliser la d\u00e9finition des r\u00e9pertoires cibles au sommet des programmes analytiques. En d\u00e9clarant une macro-variable globale d\u00e9di\u00e9e, telle que %LET RepSortie = \/sas\/projets\/etude_clinique\/livrables;, le d\u00e9veloppeur circonscrit l&rsquo;int\u00e9gralit\u00e9 des d\u00e9pendances de chemins \u00e0 une unique ligne de configuration modifiable \u00e0 volont\u00e9.<\/p>\n<p>L&rsquo;injection de cette macro-variable au sein de la proc\u00e9dure PROC EXPORT s&rsquo;effectue par substitution lexicale au moyen du symbole perlu\u00e8te (&amp;). Il est alors imp\u00e9ratif d&rsquo;encadrer la valeur de l&rsquo;argument OUTFILE= de guillemets doubles (\u00ab\u00a0&amp;RepSortie\/Rapport_Final.xlsx\u00a0\u00bb) plut\u00f4t que de guillemets simples. Dans le syst\u00e8me de compilation SAS, les cha\u00eenes d\u00e9limit\u00e9es par des apostrophes ou guillemets simples sont trait\u00e9es de mani\u00e8re purement litt\u00e9rale, emp\u00eachant le processeur macro de r\u00e9soudre la r\u00e9f\u00e9rence symbolique, ce qui conduit \u00e0 la recherche infructueuse d&rsquo;un fichier dont le nom contiendrait textuellement le caract\u00e8re \u00ab\u00a0&amp;\u00a0\u00bb.<\/p>\n<p>Cette modularit\u00e9 s&rsquo;av\u00e8re particuli\u00e8rement pr\u00e9cieuse lors des phases de migration de code entre des environnements de d\u00e9veloppement, de pr\u00e9-production et de production industrielle, ou lors du partage de scripts entre chercheurs collaborant sur des stations de travail h\u00e9t\u00e9rog\u00e8nes. La modification d&rsquo;une unique variable d&rsquo;ancrage en t\u00eate de script permet de r\u00e9adapter instantan\u00e9ment l&rsquo;int\u00e9gralit\u00e9 du pipeline d&rsquo;extraction, r\u00e9duisant \u00e0 n\u00e9ant les risques d&rsquo;omissions manuelles au sein des blocs proc\u00e9duraux dispers\u00e9s dans le corps du document.<\/p>\n<p>Pour parfaire l&rsquo;industrialisation du processus, il est hautement recommand\u00e9 d&rsquo;int\u00e9grer un contr\u00f4le programmatique pr\u00e9alable de l&rsquo;existence physique du r\u00e9pertoire r\u00e9cepteur. L&rsquo;utilisation combin\u00e9e du macro-langage et de la fonction syst\u00e8me SAS FILEEXIST permet de tester la validit\u00e9 du conteneur avant de d\u00e9clencher l&rsquo;\u00e9criture des donn\u00e9es. Si l&rsquo;interrogation du chemin r\u00e9v\u00e8le l&rsquo;absence du r\u00e9pertoire d&rsquo;accueil, le script peut alors d\u00e9clencher dynamiquement l&rsquo;instanciation de l&rsquo;arborescence manquante via la commande syst\u00e8me CALL SYSTEM ou interrompre l&rsquo;ex\u00e9cution de mani\u00e8re contr\u00f4l\u00e9e via l&rsquo;instruction %ABORT, consignant un message circonstanci\u00e9 dans le journal syst\u00e8me et emp\u00eachant ainsi la g\u00e9n\u00e9ration d&rsquo;erreurs en cascade dues \u00e0 un chemin invalide.<\/p>\n<h2>4. R\u00f4le et s\u00e9lection des pilotes DBMS pour les formats tabulaires<\/h2>\n<h3>4.1 Le pilote DBMS=XLSX : avantages et compatibilit\u00e9 native<\/h3>\n<p>Le param\u00e8tre DBMS= (Database Management System) de la proc\u00e9dure PROC EXPORT indique \u00e0 l&rsquo;interpr\u00e9teur SAS le sous-syst\u00e8me de conversion et le protocole binaire \u00e0 mobiliser pour s\u00e9rialiser les donn\u00e9es vers le support externe. Parmi l&rsquo;ensemble des moteurs disponibles dans les versions modernes de SAS, l&rsquo;instruction DBMS=XLSX s&rsquo;affirme comme le standard de r\u00e9f\u00e9rence absolu pour l&rsquo;ensemble des d\u00e9veloppements contemporains. Ce pilote assure une passerelle native vers la sp\u00e9cification OpenXML r\u00e9gissant les fichiers Microsoft Excel modernes portant l&rsquo;extension homonyme .xlsx.<\/p>\n<p>Le b\u00e9n\u00e9fice architectural majeur de DBMS=XLSX r\u00e9side dans son autonomie logicielle compl\u00e8te. Contrairement aux solutions historiques, ce pilote ne requiert l&rsquo;installation d&rsquo;aucun composant tiers Microsoft Office, d&rsquo;aucune biblioth\u00e8que ODBC\/OLE DB d\u00e9di\u00e9e et ne d\u00e9pend aucunement du moteur redistribuable Microsoft Access Database Engine (ACE). SAS g\u00e9n\u00e8re et assemble directement les flux XML sous-jacents compress\u00e9s au sein du conteneur ZIP qui structure tout fichier XLSX moderne. Cette ind\u00e9pendance totale \u00e9limine d&#8217;embl\u00e9e les conflits logiciels traditionnels, permettant une ex\u00e9cution d&rsquo;une stabilit\u00e9 absolue sur les serveurs distants op\u00e9rant sous des distributions Unix, Linux ou AIX, o\u00f9 l&rsquo;\u00e9cosyst\u00e8me applicatif Microsoft est par nature inexistant.<\/p>\n<p>En outre, l&rsquo;impl\u00e9mentation native 64 bits de DBMS=XLSX \u00e9radique les incompatibilit\u00e9s r\u00e9currentes qui entravaient fr\u00e9quemment les flux d&rsquo;exportation sur les postes de travail dot\u00e9s d&rsquo;une version 64 bits de SAS cohabitant avec une suite bureautique Office compil\u00e9e en architecture 32 bits. Le pilote dialogue directement avec le syst\u00e8me de fichiers h\u00f4te, maximisant les d\u00e9bits de transfert de donn\u00e9es et autorisant la gestion transparente d&rsquo;\u00e9critures directes volumineuses sans saturer la pile de m\u00e9moire applicative.<\/p>\n<p>Enfin, DBMS=XLSX offre un support consid\u00e9rablement optimis\u00e9 pour la pr\u00e9servation des m\u00e9tadonn\u00e9es de colonnes \u00e9tendues. Il prend en charge nativement les cha\u00eenes de caract\u00e8res longues sans appliquer la troncature arbitraire \u00e0 255 caract\u00e8res qui caract\u00e9risait les anciens protocoles tabulaires, et g\u00e8re avec une pr\u00e9cision chirurgicale l&rsquo;alignement des types scalaires. La rapidit\u00e9 d&rsquo;ex\u00e9cution et la fid\u00e9lit\u00e9 de restitution offertes par ce moteur en font le choix pr\u00e9f\u00e9rentiel et exclusif de toute cha\u00eene de traitement de donn\u00e9es p\u00e9renne.<\/p>\n<h3>4.2 Alternatives historiques : DBMS=EXCEL et DBMS=XLS<\/h3>\n<p>L&rsquo;exploration du patrimoine m\u00e9thodologique et des bases de code SAS anciennes met fr\u00e9quemment en lumi\u00e8re l&rsquo;utilisation des pilotes DBMS=EXCEL et DBMS=XLS. Comprendre les fondements et les limites de ces options historiques s&rsquo;av\u00e8re crucial pour tout analyste confront\u00e9 \u00e0 des op\u00e9rations de maintenance logicielle ou de r\u00e9tro-ing\u00e9nierie, bien que leur emploi dans des d\u00e9veloppements neufs soit d\u00e9sormais formellement d\u00e9conseill\u00e9 par les architectes de syst\u00e8mes d&rsquo;information.<\/p>\n<p>L&rsquo;option DBMS=EXCEL a longtemps constitu\u00e9 le moyen privil\u00e9gi\u00e9 de dialogue entre SAS et Microsoft Excel sous environnement d&rsquo;exploitation Windows. Son fonctionnement reposait cependant sur une d\u00e9pendance critique vis-\u00e0-vis des composants d&rsquo;acc\u00e8s aux donn\u00e9es de Microsoft, successivement mat\u00e9rialis\u00e9s par le moteur Jet Engine puis par l&rsquo;Access Database Engine (ACE). Cette d\u00e9pendance technique imposait une concordance architecturale rigoureuse entre la version de SAS et celle de Microsoft Office. Si un utilisateur exploitait une version 64 bits de SAS aux c\u00f4t\u00e9s d&rsquo;une version 32 bits d&rsquo;Excel \u2014 configuration historiquement tr\u00e8s r\u00e9pandue en milieu d&rsquo;entreprise pour des raisons de r\u00e9trocompatibilit\u00e9 des macros VBA \u2014, l&rsquo;appel \u00e0 DBMS=EXCEL \u00e9chouait syst\u00e9matiquement, confront\u00e9 \u00e0 l&rsquo;incapacit\u00e9 d&rsquo;\u00e9tablir une liaison dynamique inter-processus h\u00e9t\u00e9rog\u00e8ne (32\/64 bits).<\/p>\n<p>De son c\u00f4t\u00e9, le pilote DBMS=XLS s&rsquo;adressait sp\u00e9cifiquement \u00e0 la g\u00e9n\u00e9ration de fichiers binaires respectant la sp\u00e9cification BIFF8 propre \u00e0 Microsoft Excel versions 97 \u00e0 2003. La contrainte la plus invalidante de cette norme r\u00e9side dans son plafond volum\u00e9trique structurel ind\u00e9passable : une feuille de calcul au format XLS ne peut math\u00e9matiquement h\u00e9berger plus de 65 536 lignes d&rsquo;observations et se trouve restreinte \u00e0 un maximum de 256 colonnes. Toute tentative d&rsquo;exportation d&rsquo;un jeu de donn\u00e9es statistique contemporain exc\u00e9dant ces seuils dimensionnels entra\u00eene l&rsquo;avortement imm\u00e9diat de la proc\u00e9dure et une troncation irr\u00e9m\u00e9diable des informations.<\/p>\n<p>Ces deux pilotes souffrent aujourd&rsquo;hui d&rsquo;une d\u00e9pr\u00e9ciation technique prononc\u00e9e. Les \u00e9volutions continues du noyau logiciel SAS et les durcissements des politiques de s\u00e9curit\u00e9 des syst\u00e8mes d&rsquo;exploitation modernes ont accentu\u00e9 les risques d&rsquo;instabilit\u00e9 li\u00e9s \u00e0 leur utilisation. Le maintien de ces instructions au sein de scripts en production expose les infrastructures \u00e0 des ruptures de service inopin\u00e9es lors de la mise \u00e0 jour des parcs applicatifs. D\u00e8s lors, la conversion syst\u00e9matique des flux historiques vers le moteur DBMS=XLSX constitue un imp\u00e9ratif de gestion des risques informatiques.<\/p>\n<h2>5. Exemple pratique 1 : Exportation d&rsquo;une table unique vers une feuille de calcul<\/h2>\n<h3>5.1 Construction du jeu de donn\u00e9es exp\u00e9rimental SAS<\/h3>\n<p>Afin de concr\u00e9tiser les concepts th\u00e9oriques expos\u00e9s, nous allons d\u00e9velopper un premier exemple empirique centr\u00e9 sur l&rsquo;exportation d&rsquo;une table unique. Dans le cadre de ce cas pratique, nous simulons la constitution d&rsquo;une cohorte d&rsquo;\u00e9valuation psychom\u00e9trique colligeant diverses m\u00e9triques cognitives et physiologiques chez des sujets soumis \u00e0 des protocoles d&rsquo;entra\u00eenement distincts. Ce protocole nous permettra d&rsquo;\u00e9tudier le comportement du moteur d&rsquo;exportation face \u00e0 des types de donn\u00e9es h\u00e9t\u00e9rog\u00e8nes.<\/p>\n<p>L&rsquo;\u00e9tape de programmation DATA initialise une table temporaire nomm\u00e9e EVALUATION_COGNITIVE au sein de la biblioth\u00e8que de travail WORK. Nous d\u00e9clarons des variables identifiantes de type caract\u00e8re (Patient_ID), des variables continues issues d&rsquo;\u00e9chelles standardis\u00e9es (Score_PreTest, Score_PostTest), un indicateur temporel rigoureusement format\u00e9 (Date_Evaluation) et une variable cat\u00e9gorielle assignant les sujets \u00e0 un bras exp\u00e9rimental sp\u00e9cifique (Condition_Traitement). L&rsquo;\u00e9tape DATA utilise des fonctions de distribution al\u00e9atoire et des assignations directes pour peupler un \u00e9chantillon repr\u00e9sentatif de sujets, en veillant \u00e0 incorporer d\u00e9lib\u00e9r\u00e9ment des particularit\u00e9s structurelles telles que des d\u00e9cimales pr\u00e9cises et des dates calendaires.<\/p>\n<figure class=\"wpt-preserved-image\"><img fetchpriority=\"high\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/export11.jpg\" alt=\"\" \/><\/figure>\n<p>Une fois la table instanci\u00e9e en m\u00e9moire, une inspection pr\u00e9alable de son int\u00e9grit\u00e9 dimensionnelle et scalaire s&rsquo;impose avant tout transfert externe. Cette validation pr\u00e9liminaire est r\u00e9alis\u00e9e au moyen de la proc\u00e9dure PROC CONTENTS, qui renseigne le dictionnaire complet de la table (nombre d&rsquo;enregistrements, longueur des cha\u00eenes, formats attribu\u00e9s), compl\u00e9t\u00e9e par un appel \u00e0 la commande PROC PRINT pour visualiser les premi\u00e8res observations de contr\u00f4le. Cette \u00e9tape de v\u00e9rification garantit que le flux entrant dans le pipeline d&rsquo;exportation est rigoureusement conforme aux attentes statistiques et ne contient aucune anomalie cryptique d&rsquo;indexation.<\/p>\n<h3>5.2 Impl\u00e9mentation et ex\u00e9cution du script PROC EXPORT<\/h3>\n<p>L&rsquo;impl\u00e9mentation de la proc\u00e9dure PROC EXPORT pour cette premi\u00e8re table fait appel \u00e0 la combinaison canonique des arguments directeurs. La table source EVALUATION_COGNITIVE est d\u00e9clar\u00e9e via l&rsquo;argument DATA=, tandis que la trajectoire du livrable est consign\u00e9e dans l&rsquo;argument OUTFILE=. Nous s\u00e9lectionnons explicitement le pilote moderne DBMS=XLSX, compl\u00e9t\u00e9 de l&rsquo;option REPLACE afin de garantir que les it\u00e9rations successives du script puissent s&rsquo;ex\u00e9cuter sans interruption de blocage, tout en personnalisant le libell\u00e9 de l&rsquo;onglet de destination sous l&rsquo;appellation \u00ab\u00a0Donnees_Brutes\u00a0\u00bb via l&rsquo;instruction SHEET=.<\/p>\n<p>L&rsquo;ex\u00e9cution du script s&rsquo;accompagne d&rsquo;un examen approfondi du journal d&rsquo;ex\u00e9cution (SAS Log), qui constitue le panneau de diagnostic de r\u00e9f\u00e9rence de l&rsquo;analyste. Lors du traitement de l&rsquo;instruction RUN, le moteur SAS compile le flux, initialise l&rsquo;interpr\u00e9teur XLSX, instancie l&rsquo;arborescence compress\u00e9e du classeur cible et proc\u00e8de \u00e0 l&rsquo;\u00e9criture s\u00e9quentielle des blocs d&rsquo;enregistrements. Le journal consigne avec pr\u00e9cision le nombre de lignes et de colonnes effectivement transf\u00e9r\u00e9es, tout en confirmant la trajectoire absolue du fichier \u00e9crit sur le disque dur h\u00f4te.<\/p>\n<p>L&rsquo;analyste doit imp\u00e9rativement scruter le journal syst\u00e8me pour d\u00e9tecter l&rsquo;apparition \u00e9ventuelle de messages d&rsquo;avertissement (WARNING) ou de signalements d&rsquo;erreur (ERROR). Une ex\u00e9cution r\u00e9ussie se traduit syst\u00e9matiquement par une mention explicite confirmant que le fichier a \u00e9t\u00e9 cr\u00e9\u00e9 avec succ\u00e8s et que la table WORK.EVALUATION_COGNITIVE a \u00e9t\u00e9 convertie dans le format sp\u00e9cifi\u00e9. Toute divergence entre le volume de donn\u00e9es attendu et le d\u00e9compte affich\u00e9 dans le journal r\u00e9v\u00e8le une anomalie structurelle dans le processus de transmission.<\/p>\n<h3>5.3 Validation post-exportation dans l&rsquo;interface Excel<\/h3>\n<p>La cl\u00f4ture du protocole d&rsquo;exportation ne saurait \u00eatre valid\u00e9e sans une d\u00e9marche m\u00e9thodique d&rsquo;audit a posteriori au sein de l&rsquo;environnement applicatif r\u00e9cepteur, \u00e0 savoir Microsoft Excel. Cette \u00e9tape d&rsquo;assurance qualit\u00e9 logicielle consiste \u00e0 ouvrir le classeur g\u00e9n\u00e9r\u00e9 afin de confronter visuellement et fonctionnellement la structure de donn\u00e9es restitu\u00e9e par le tableur avec la table m\u00e8re g\u00e9r\u00e9e dans le r\u00e9f\u00e9rentiel SAS.<\/p>\n<p>Le premier point de contr\u00f4le porte sur l&rsquo;ordonnancement s\u00e9quentiel des colonnes et la conformit\u00e9 des en-t\u00eates. Il convient de v\u00e9rifier que les variables Patient_ID, Score_PreTest, Score_PostTest, Date_Evaluation et Condition_Traitement occupent les positions respectives d\u00e9finies lors de l&rsquo;\u00e9tape de programmation, et qu&rsquo;aucun d\u00e9calage vectoriel n&rsquo;a \u00e9t\u00e9 introduit. L&rsquo;int\u00e9grit\u00e9 des cellules est ensuite inspect\u00e9e : les valeurs num\u00e9riques continues doivent \u00eatre reconnues par Excel comme des nombres r\u00e9els autorisant imm\u00e9diatement des calculs arithm\u00e9tiques, et non comme du texte brut align\u00e9 \u00e0 gauche de la cellule \u2014 anomalie classique traduisant un mauvais couplage de format lors de l&rsquo;exportation.<\/p>\n<p>Une attention sp\u00e9cifique doit \u00eatre port\u00e9e aux formats temporels et calendaires. La variable Date_Evaluation doit appara\u00eetre sous une graphie chronologique directement interpr\u00e9table (par exemple JJ\/MM\/AAAA) et \u00eatre sous-tendue par une valeur s\u00e9rielle valide au sens du calendrier interne d&rsquo;Excel. Enfin, l&rsquo;absence totale de d\u00e9calages d&rsquo;indexation \u2014 ph\u00e9nom\u00e8ne qui survient lorsque des d\u00e9limiteurs internes ou des caract\u00e8res non imprimables corrompent la rupture des cellules \u2014 garantit que l&rsquo;isolation matricielle des donn\u00e9es a \u00e9t\u00e9 scrupuleusement respect\u00e9e d&rsquo;une extr\u00e9mit\u00e9 \u00e0 l&rsquo;autre de la passerelle logicielle.<\/p>\n<h2>6. Exemple pratique 2 : Structuration d&rsquo;un classeur multi-feuilles \u00e0 partir de plusieurs tables<\/h2>\n<h3>6.1 Pr\u00e9paration de multiples tables statistiques corr\u00e9l\u00e9es<\/h3>\n<p>Dans les contextes d&rsquo;analyse avanc\u00e9e, la diffusion des r\u00e9sultats de recherche sous la forme d&rsquo;un fichier Excel requiert rarement le transfert d&rsquo;une table unique et isol\u00e9e. Les exigences de reporting scientifique imposent le plus souvent de structurer les livrables sous la forme d&rsquo;un classeur d&rsquo;analyse coh\u00e9rent, agr\u00e9geant au sein d&rsquo;une m\u00eame entit\u00e9 physique des niveaux d&rsquo;information hi\u00e9rarchis\u00e9s : les caract\u00e9ristiques d\u00e9mographiques individuelles de la cohorte, les synth\u00e8ses de statistiques descriptives univari\u00e9es et les param\u00e8tres d&rsquo;estimation issus de la mod\u00e9lisation statistique inf\u00e9rentielle.<\/p>\n<p>Pour illustrer ce cas d&rsquo;\u00e9cole multi-dimensionnel, nous instancions dans l&rsquo;environnement de calcul SAS trois tables de donn\u00e9es distinctes mais conceptuellement corr\u00e9l\u00e9es. La premi\u00e8re, d\u00e9sign\u00e9e sous le nom DEMOGRAPHIE, rassemble les attributs p\u00e9rennes des participants \u00e0 l&rsquo;\u00e9tude (identifiant du sujet, classe d&rsquo;\u00e2ge, genre biologique, centre de recrutement). La deuxi\u00e8me table, intitul\u00e9e STATS_DESCRIPTIVES, est produite \u00e0 l&rsquo;aide de la proc\u00e9dure PROC MEANS et contient les m\u00e9triques d&rsquo;agr\u00e9gation classiques (moyenne arithm\u00e9tique, \u00e9cart-type, m\u00e9diane, quartiles et \u00e9tendue) calcul\u00e9es sur les diff\u00e9rents marqueurs \u00e9valu\u00e9s. Enfin, la troisi\u00e8me table, nomm\u00e9e MODELES_ANALYSE, capture les estimateurs de r\u00e9gression, les erreurs types associ\u00e9es, les valeurs du test statistique de Wald et les p-values r\u00e9sultant de l&rsquo;ex\u00e9cution d&rsquo;une proc\u00e9dure PROC REG ou PROC GLM.<\/p>\n<p>En amont de toute d\u00e9marche d&rsquo;exportation, l&rsquo;architecture relationnelle de ces trois tables doit faire l&rsquo;objet d&rsquo;un audit de coh\u00e9rence strict. Les identifiants primaires doivent \u00eatre rigoureusement harmonis\u00e9s afin d&rsquo;\u00e9liminer toute divergence typographique ou scalaire. De m\u00eame, les nomenclatures des variables d&rsquo;agr\u00e9gation doivent \u00eatre unifi\u00e9es pour \u00e9carter tout risque de collision s\u00e9mantique lors de la lecture transversale du classeur final par les \u00e9quipes de recherche destinataires.<\/p>\n<h3>6.2 R\u00e8gles d&rsquo;encha\u00eenement de PROC EXPORT pour alimenter un fichier unique<\/h3>\n<p>La consolidation de plusieurs tables SAS au sein d&rsquo;un classeur Excel unique dot\u00e9 d&rsquo;onglets multiples ob\u00e9it \u00e0 une m\u00e9canique proc\u00e9durale d&rsquo;une grande rigueur. L&rsquo;erreur la plus d\u00e9vastatrice observ\u00e9e dans ce sc\u00e9nario r\u00e9side dans l&rsquo;utilisation r\u00e9p\u00e9t\u00e9e et indistincte de l&rsquo;option REPLACE lors de chaque appel \u00e0 la proc\u00e9dure PROC EXPORT. Si l&rsquo;analyste sp\u00e9cifie syst\u00e9matiquement l&rsquo;option REPLACE au cours d&rsquo;une cha\u00eene d&rsquo;exportations pointant vers le m\u00eame fichier physique, chaque ex\u00e9cution successive a pour effet de r\u00e9initialiser le document cible, d\u00e9truisant instantan\u00e9ment les onglets inject\u00e9s par les \u00e9tapes pr\u00e9c\u00e9dentes pour ne conserver finalement que la derni\u00e8re table trait\u00e9e.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/export21.jpg\" alt=\"\" \/><\/figure>\n<p>La r\u00e8gle d&rsquo;or d&rsquo;ing\u00e9nierie SAS repose donc sur l&rsquo;asym\u00e9trie de configuration entre la premi\u00e8re transaction et les op\u00e9rations subs\u00e9quentes. Le premier bloc PROC EXPORT, destin\u00e9 \u00e0 \u00e9crire la table DEMOGRAPHIE dans la feuille &lsquo;Demographie&rsquo;, doit imp\u00e9rativement comporter l&rsquo;option REPLACE afin de purger d&rsquo;\u00e9ventuels art\u00e9facts issus d&rsquo;ex\u00e9cutions ant\u00e9rieures et d&rsquo;initialiser proprement le conteneur physique de stockage sur le disque h\u00f4te. Ce premier appel d\u00e9ploie la fondation du document OpenXML.<\/p>\n<p>D\u00e8s la deuxi\u00e8me transaction d&rsquo;exportation (concernant la table STATS_DESCRIPTIVES dirig\u00e9e vers l&rsquo;onglet &lsquo;Statistiques&rsquo;) ainsi que pour la troisi\u00e8me (d\u00e9di\u00e9e \u00e0 la table MODELES_ANALYSE vers la feuille &lsquo;Modeles&rsquo;), la strat\u00e9gie doit \u00eatre scrupuleusement ajust\u00e9e. L&rsquo;instruction SHEET= assigne le nom d&rsquo;onglet exclusif correspondant \u00e0 chaque domaine de donn\u00e9es, garantissant une s\u00e9paration \u00e9tanche des flux. Gr\u00e2ce \u00e0 la robustesse du moteur DBMS=XLSX, SAS inspecte la structure du conteneur existant, y ins\u00e8re les nouveaux flux XML correspondant \u00e0 la feuille additionnelle, met \u00e0 jour le dictionnaire de relations internes du classeur et sauvegarde le document sans alt\u00e9rer la substance des feuilles pr\u00e9existantes.<\/p>\n<p>Une vigilance constante doit \u00eatre accord\u00e9e au risque de collision nominale : si un appel ult\u00e9rieur sp\u00e9cifie un nom d&rsquo;onglet rigoureusement identique \u00e0 un onglet d\u00e9j\u00e0 pr\u00e9sent au sein du classeur (par exemple &lsquo;Demographie&rsquo; \u00e0 nouveau), le comportement de SAS consistera \u00e0 \u00e9craser sp\u00e9cifiquement cet onglet particulier, ce qui illustre toute la puissance mais \u00e9galement les risques inh\u00e9rents \u00e0 une gestion impr\u00e9cise des libell\u00e9s de feuilles de calcul.<\/p>\n<h3>6.3 V\u00e9rification de l&rsquo;architecture finale du classeur<\/h3>\n<p>L&rsquo;aboutissement de la s\u00e9quence d&rsquo;instructions multi-tables impose une v\u00e9rification minutieuse de l&rsquo;architecture finale du livrable consolid\u00e9. L&rsquo;analyste doit proc\u00e9der \u00e0 l&rsquo;ouverture du classeur Excel pour valider visuellement et fonctionnellement la coexistence des trois onglets ind\u00e9pendants au sein de la barre de navigation inf\u00e9rieure du logiciel : &lsquo;Demographie&rsquo;, &lsquo;Statistiques&rsquo; et &lsquo;Modeles&rsquo;. Chacun de ces onglets doit encapsuler exclusivement le p\u00e9rim\u00e8tre de donn\u00e9es qui lui a \u00e9t\u00e9 allou\u00e9, attestant de l&rsquo;\u00e9tanch\u00e9it\u00e9 des transactions d&rsquo;\u00e9criture successives.<\/p>\n<p>Au-del\u00e0 de la confirmation visuelle, un audit de tra\u00e7abilit\u00e9 volum\u00e9trique doit \u00eatre conduit. Le nombre d&rsquo;enregistrements pr\u00e9sent dans l&rsquo;onglet &lsquo;Demographie&rsquo; doit correspondre rigoureusement au d\u00e9compte d&rsquo;observations issu de la table m\u00e8re SAS, major\u00e9 de la ligne d&rsquo;en-t\u00eate. La m\u00eame comparaison rigoureuse doit \u00eatre appliqu\u00e9e aux feuilles &lsquo;Statistiques&rsquo; et &lsquo;Modeles&rsquo;, en s&rsquo;assurant qu&rsquo;aucune troncature de libell\u00e9 de param\u00e8tre ou de valeur statistique n&rsquo;est survenue lors du processus d&rsquo;assemblage s\u00e9quentiel.<\/p>\n<p>Cette validation structurelle garantit l&rsquo;int\u00e9grit\u00e9 r\u00e9f\u00e9rentielle des donn\u00e9es export\u00e9es par lots. Le classeur Excel devient un artefact d&rsquo;analyse autosuffisant, document\u00e9 et pr\u00eat pour la phase de diffusion aupr\u00e8s des \u00e9valuateurs externes ou des partenaires institutionnels, tout en conservant une concordance parfaite avec les tables analytiques r\u00e9sidant au sein de l&rsquo;environnement s\u00e9curis\u00e9 SAS.<\/p>\n<h2>7. Gestion des \u00e9tiquettes de variables, des formats et des valeurs manquantes<\/h2>\n<h3>7.1 Exportation des noms de variables versus \u00e9tiquettes (Labels)<\/h3>\n<p>L&rsquo;une des distinctions fondamentales au sein du dictionnaire de donn\u00e9es SAS repose sur la dichotomie entre le nom canonique d&rsquo;une variable et son \u00e9tiquette descriptive (LABEL). Le nom de variable est assujetti \u00e0 des r\u00e8gles syntaxiques restrictives : il ne peut exc\u00e9der 32 caract\u00e8res dans les versions actuelles, doit imp\u00e9rativement d\u00e9buter par une lettre ou un trait d&rsquo;union bas et exclut l&rsquo;usage d&rsquo;espaces et de caract\u00e8res accentu\u00e9s. \u00c0 l&rsquo;inverse, l&rsquo;\u00e9tiquette descriptive offre un champ de contextualisation s\u00e9mantique \u00e9tendu pouvant comporter jusqu&rsquo;\u00e0 256 caract\u00e8res, incluant une ponctuation \u00e9labor\u00e9e et des caract\u00e8res diacritiques, ce qui en fait le vecteur id\u00e9al pour documenter pr\u00e9cis\u00e9ment la signification clinique ou exp\u00e9rimentale d&rsquo;une colonne.<\/p>\n<p>Par d\u00e9faut, le comportement op\u00e9rationnel de la proc\u00e9dure PROC EXPORT avec le pilote DBMS=XLSX consiste \u00e0 extraire les noms techniques de variables pour constituer la ligne d&rsquo;en-t\u00eate de la feuille Excel g\u00e9n\u00e9r\u00e9e. Si cette modalit\u00e9 satisfait les exigences des pipelines d&rsquo;automatisation informatique destin\u00e9s \u00e0 une r\u00e9importation ult\u00e9rieure dans des bases de donn\u00e9es relationnelles, elle s&rsquo;av\u00e8re fr\u00e9quemment sous-optimale pour la production de rapports destin\u00e9s \u00e0 des utilisateurs non techniciens, qui privil\u00e9gient la lisibilit\u00e9 d&rsquo;\u00e9tiquettes textuelles soign\u00e9es telles que \u00ab\u00a0Tension Art\u00e9rielle Systolique (mmHg)\u00a0\u00bb au d\u00e9triment de d\u00e9signations compactes telles que \u00ab\u00a0TAS_mmHg_V1\u00a0\u00bb.<\/p>\n<p>Pour modifier ce comportement par d\u00e9faut et forcer la proc\u00e9dure PROC EXPORT \u00e0 substituer les \u00e9tiquettes descriptives aux noms de variables au sein de la ligne d&rsquo;en-t\u00eate du fichier cible, le d\u00e9veloppeur doit mobiliser l&rsquo;option d&rsquo;environnement syst\u00e8me LABEL. Cette configuration est activ\u00e9e en amont de l&rsquo;appel proc\u00e9dural au moyen de l&rsquo;instruction OPTIONS LABEL;. Coupl\u00e9e \u00e0 l&rsquo;instruction d&rsquo;exportation, cette directive ordonne au moteur XLSX de sonder le dictionnaire de la table SAS : si une \u00e9tiquette descriptive a \u00e9t\u00e9 pr\u00e9alablement assign\u00e9e \u00e0 la colonne, elle est inject\u00e9e dans l&rsquo;en-t\u00eate du classeur Excel ; en l&rsquo;absence d&rsquo;\u00e9tiquette explicite, le nom canonique de la variable est conserv\u00e9 \u00e0 titre de repli technique. Cette flexibilit\u00e9 permet d&rsquo;adapter parfaitement l&rsquo;esth\u00e9tique du classeur \u00e0 son public cible.<\/p>\n<h3>7.2 Pr\u00e9servation des formats personnalis\u00e9s et dates<\/h3>\n<p>La gestion des dates et des variables chronologiques constitue l&rsquo;un des \u00e9cueils m\u00e9thodologiques les plus critiques lors de la transition entre SAS et Microsoft Excel. Cette difficult\u00e9 trouve son origine dans la divergence profonde des calendriers s\u00e9riels internes r\u00e9gissant ces deux plateformes logicielles. SAS quantifie les dates sous la forme d&rsquo;un nombre entier repr\u00e9sentant le nombre de jours \u00e9coul\u00e9s depuis le point d&rsquo;ancrage historique fix\u00e9 au 1er janvier 1960. \u00c0 l&rsquo;oppos\u00e9, Microsoft Excel utilise par d\u00e9faut un syst\u00e8me de r\u00e9f\u00e9rence chronologique prenant pour origine le 1er janvier 1900 (ou le 1er janvier 1904 sur certaines configurations historiques de syst\u00e8mes Macintosh).<\/p>\n<p>En l&rsquo;absence d&rsquo;application pr\u00e9alable d&rsquo;un format calendaire ad\u00e9quat au sein de l&rsquo;environnement SAS, une valeur de date sera irr\u00e9m\u00e9diablement export\u00e9e sous la forme de son entier s\u00e9riel brut d&rsquo;origine 1960. Par exemple, la date du 15 octobre 2023, qui correspond \u00e0 la valeur s\u00e9rielle 23300 dans le syst\u00e8me SAS, sera ins\u00e9r\u00e9e telle quelle dans la cellule Excel ; le tableur, interpr\u00e9tant ce nombre selon son propre calendrier 1900, affichera alors la date erron\u00e9e du 29 octobre 1963, introduisant une alt\u00e9ration temporelle majeure susceptible de vicier gravement des analyses longitudinales.<\/p>\n<p>Pour pr\u00e9munir le pipeline analytique contre cette d\u00e9synchronisation, il est imp\u00e9ratif d&rsquo;assigner rigoureusement un format de date SAS explicite (tel que DATE9., YYMMDD10. ou DDMMYY10.) \u00e0 la variable avant de lancer l&rsquo;instruction d&rsquo;exportation, soit au sein d&rsquo;une \u00e9tape DATA interm\u00e9diaire, soit via une instruction FORMAT encapsul\u00e9e. Le pilote DBMS=XLSX intercepte ces formats calendaires standardis\u00e9s et assure la translation math\u00e9matique requise vers l&rsquo;\u00e9chelle chronologique d&rsquo;Excel tout en configurant la propri\u00e9t\u00e9 d&rsquo;affichage de la cellule r\u00e9ceptrice. Une logique analogue s&rsquo;applique aux formats mon\u00e9taires (DOLLAR., EURO.) et num\u00e9riques d\u00e9cimaux (PERCENT., COMMA.), garantissant que l&rsquo;attribut visuel transmis \u00e0 Excel respecte fid\u00e8lement les conventions typographiques sans d\u00e9naturer la pr\u00e9cision num\u00e9rique sous-jacente.<\/p>\n<h3>7.3 Traitement des valeurs manquantes et caract\u00e8res sp\u00e9ciaux<\/h3>\n<p>La structure des donn\u00e9es empiriques se heurte in\u00e9vitablement \u00e0 la probl\u00e9matique des observations lacunaires ou non collect\u00e9es. Au sein du syst\u00e8me SAS, l&rsquo;absence de mesure pour une variable num\u00e9rique est signal\u00e9e par d\u00e9faut par le symbole du point r\u00e9gulier (.), qui repr\u00e9sente la valeur manquante standard. Le compilateur SAS propose \u00e9galement une fonctionnalit\u00e9 analytique puissante mat\u00e9rialis\u00e9e par les valeurs manquantes sp\u00e9ciales, d\u00e9sign\u00e9es par un point imm\u00e9diatement suivi d&rsquo;une lettre majuscule (.A jusqu&rsquo;\u00e0 .Z) ou d&rsquo;un trait de soulignement (._), permettant aux chercheurs de cat\u00e9goriser la nature pr\u00e9cise de l&rsquo;absence de donn\u00e9e (par exemple : .N pour \u00ab\u00a0Non applicable\u00a0\u00bb, .R pour \u00ab\u00a0Refus de r\u00e9ponse\u00a0\u00bb ou .D pour \u00ab\u00a0Donn\u00e9e perdue\u00a0\u00bb).<\/p>\n<p>Lors de l&rsquo;exportation vers un classeur Excel, la transcription de ces valeurs manquantes exige une vigilance singuli\u00e8re. Par d\u00e9faut, le moteur DBMS=XLSX convertit les valeurs manquantes num\u00e9riques standards (.) en cellules int\u00e9gralement vides au sein de la feuille de calcul. Ce comportement s&rsquo;av\u00e8re g\u00e9n\u00e9ralement vertueux, dans la mesure o\u00f9 les formules arithm\u00e9tiques internes d&rsquo;Excel (telles que MOYENNE ou SOMME) ignorent nativement les cellules vides lors de leurs \u00e9valuations scalaires, alors que la pr\u00e9sence d&rsquo;un point textuel forcerait le tableur \u00e0 traiter la cellule comme une cha\u00eene de caract\u00e8res, g\u00e9n\u00e9rant des messages d&rsquo;erreur de typage arithm\u00e9tique de type #VALEUR! lors de l&rsquo;ex\u00e9cution de formules d\u00e9pendantes.<\/p>\n<p>En revanche, le traitement des valeurs manquantes sp\u00e9ciales (.A \u00e0 .Z) peut conduire \u00e0 l&rsquo;inscription de ces codes sous une forme textuelle au sein des cellules Excel correspondantes. L&rsquo;analyste doit imp\u00e9rativement cartographier ces comportements et documenter la signification de ces identifiants dans un dictionnaire de m\u00e9tadonn\u00e9es annex\u00e9 \u00e0 l&rsquo;export, afin d&rsquo;\u00e9viter que des \u00e9valuateurs non avertis ne confondent une variable manquante cat\u00e9goris\u00e9e avec une cha\u00eene de caract\u00e8res valide.<\/p>\n<p>Enfin, la gestion des caract\u00e8res sp\u00e9ciaux et de l&rsquo;alphabet \u00e9tendu francophone (lettres accentu\u00e9es telles que \u00e9, \u00e8, \u00ea, c\u00e9dilles, ligatures) implique une ma\u00eetrise sans faille des encodages de caract\u00e8res. Si la session SAS est initialis\u00e9e sous un encodage mono-octet restreint (tel que Latin1 \/ Wlatin1) et dialogue avec un syst\u00e8me d&rsquo;exploitation cible op\u00e9rant sous une variante diff\u00e9rente de l&rsquo;Unicode, des artefacts de s\u00e9rialisation d\u00e9sign\u00e9s sous le terme de mojibake peuvent appara\u00eetre au sein des libell\u00e9s de cellules Excel (se traduisant par des symboles aberrants tels que \u00ab\u00a0\u00c3\u00a9\u00a0\u00bb). L&rsquo;initialisation syst\u00e9matique des environnements SAS modernes sous l&rsquo;encodage universel UTF-8 constitue le bouclier le plus efficace pour \u00e9radiquer d\u00e9finitivement ces corruptions de transcodage.<\/p>\n<h2>8. Automatisation et dynamisation des exports via le langage macro SAS<\/h2>\n<h3>8.1 Cr\u00e9ation d&rsquo;une macro-commande param\u00e9trable pour l&rsquo;exportation<\/h3>\n<p>Dans un contexte op\u00e9rationnel caract\u00e9ris\u00e9 par la r\u00e9currence des op\u00e9rations de mod\u00e9lisation et la n\u00e9cessit\u00e9 de livrer p\u00e9riodiquement des r\u00e9sultats actualis\u00e9s, l&rsquo;\u00e9criture s\u00e9quentielle et r\u00e9p\u00e9titive de blocs de commandes PROC EXPORT devient une source d&rsquo;inefficience et de vuln\u00e9rabilit\u00e9 logicielle. L&rsquo;encapsulation de la logique d&rsquo;exportation au sein d&rsquo;une macro-commande SAS standardis\u00e9e et param\u00e9trable constitue la r\u00e9ponse m\u00e9thodologique id\u00e9ale pour \u00e9lever le niveau de fiabilit\u00e9 et de modularit\u00e9 du code d&rsquo;analyse.<\/p>\n<p>Une macro-commande robuste, que l&rsquo;on pourra d\u00e9signer sous le nom formel de %ExportExcel, doit \u00eatre con\u00e7ue de mani\u00e8re \u00e0 accepter des param\u00e8tres nomm\u00e9s d\u00e9finissant l&rsquo;int\u00e9gralit\u00e9 de ses dimensions d&rsquo;action : la table source en m\u00e9moire (table=), la trajectoire de stockage cible (chemin=), le libell\u00e9 de l&rsquo;onglet de destination (feuille=) ainsi qu&rsquo;un commutateur bool\u00e9en contr\u00f4lant l&rsquo;autorisation d&rsquo;\u00e9crasement (remplacer=OUI). L&rsquo;architecture interne de la macro structure l&rsquo;\u00e9valuation de ces arguments et orchestre la composition dynamique de l&rsquo;instruction proc\u00e9durale sous-jacente.<\/p>\n<p>L&rsquo;avantage cardinal de cette approche r\u00e9side dans la possibilit\u00e9 d&rsquo;int\u00e9grer des r\u00e8gles de validation pr\u00e9ventives directement au sein du corps de la macro. Au moyen des directives conditionnelles du macro-langage (%IF-%THEN-%ELSE), la macro peut v\u00e9rifier l&rsquo;absence d&rsquo;arguments obligatoires, tester la validit\u00e9 structurelle des param\u00e8tres pass\u00e9s en revue et consigner des messages d&rsquo;erreur explicites au sein du journal SAS avant m\u00eame de tenter d&rsquo;instancier la moindre ressource d&rsquo;entr\u00e9e-sortie. Ce niveau de contr\u00f4le programmatique transforme un simple script d&rsquo;extraction en un module applicatif p\u00e9renne, r\u00e9utilisable sans friction au travers de multiples projets de recherche.<\/p>\n<h3>8.2 G\u00e9n\u00e9ration de noms de fichiers dynamiques et horodat\u00e9s<\/h3>\n<p>Le contr\u00f4le de version et l&rsquo;archivage rigoureux des donn\u00e9es constituent des piliers cardinaux de la gouvernance de l&rsquo;information statistique. L&rsquo;\u00e9crasement continu d&rsquo;un fichier portant un nom statique (tel que \u00ab\u00a0Resultats.xlsx\u00a0\u00bb) expose les \u00e9quipes \u00e0 des pertes irr\u00e9m\u00e9diables d&rsquo;historique analytique et emp\u00eache l&rsquo;audit r\u00e9trospectif de l&rsquo;\u00e9volution des calculs au cours des diff\u00e9rentes phases d&rsquo;un protocole exp\u00e9rimental. La dynamique temporelle doit donc \u00eatre inject\u00e9e directement dans le nom de fichier g\u00e9n\u00e9r\u00e9 par le moteur d&rsquo;exportation.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/export31.jpg\" alt=\"\" \/><\/figure>\n<p>Le macro-processeur SAS offre pour cela des fonctionnalit\u00e9s avanc\u00e9es d&rsquo;interrogation du temps syst\u00e8me au travers de la fonction macro %SYSFUNC, capable de mobiliser les fonctions scalaires du langage de base. En combinant %SYSFUNC avec les fonctions TODAY() et TIME(), associ\u00e9es \u00e0 des formats calendaires et horaires compacts ne contenant aucun caract\u00e8re prohib\u00e9 par les syst\u00e8mes de fichiers (tels que YYMMDDN8. ou TOD6.), le d\u00e9veloppeur peut extraire une estampille chronologique univoque sous la forme \u00ab\u00a020231025_143022\u00a0\u00bb.<\/p>\n<p>L&rsquo;assemblage de cette estampille au sein d&rsquo;une macro-variable d&rsquo;horodatage permet de formater dynamiquement la cha\u00eene pass\u00e9e \u00e0 l&rsquo;argument OUTFILE=. Un livrable portera ainsi automatiquement la nomenclature contextualis\u00e9e \u00ab\u00a0Export_Donnees_2023_10_25.xlsx\u00a0\u00bb. Cette technique garantit que chaque ex\u00e9cution programm\u00e9e du pipeline d&rsquo;analyse produira un nouvel artefact physique autonome, parfaitement identifiable chronologiquement, facilitant le suivi longitudinal des bases de donn\u00e9es de recherche et instaurant une tra\u00e7abilit\u00e9 native des cycles de traitement sans intervention humaine manuelle.<\/p>\n<h3>8.3 Exportation it\u00e9rative d&rsquo;une collection de tables via une boucle macro<\/h3>\n<p>Les protocoles analytiques de grande envergure requi\u00e8rent fr\u00e9quemment l&rsquo;exportation simultan\u00e9e de plusieurs dizaines, voire de plusieurs centaines de tables de r\u00e9sultats issues de proc\u00e9dures de mod\u00e9lisation s\u00e9rielles ou de d\u00e9coupages par sous-groupes populationnels. R\u00e9diger manuellement des dizaines d&rsquo;occurrences de la commande PROC EXPORT s&rsquo;av\u00e9rerait intol\u00e9rablement fastidieux et hautement propice aux erreurs de copier-coller. L&rsquo;automatisation it\u00e9rative par boucle macro s&rsquo;impose dans ce contexte comme une n\u00e9cessit\u00e9 imp\u00e9rieuse.<\/p>\n<p>Le fondement de cette strat\u00e9gie repose sur l&rsquo;exploitation des tables de m\u00e9tadonn\u00e9es du syst\u00e8me SAS, et plus particuli\u00e8rement de la vue SASHELP.VTABLE. Cette vue dictionnaire expose l&rsquo;inventaire en temps r\u00e9el de l&rsquo;ensemble des tables de donn\u00e9es h\u00e9berg\u00e9es au sein des biblioth\u00e8ques actives de la session. En ex\u00e9cutant une requ\u00eate SQL via la proc\u00e9dure PROC SQL ciblant la vue SASHELP.VTABLE, filtr\u00e9e sur une biblioth\u00e8que sp\u00e9cifique (par exemple WHERE libname = &lsquo;RESULTATS&rsquo;), l&rsquo;analyste peut capturer automatiquement la liste exhaustive des noms de tables \u00e0 exporter et charger cette collection au sein d&rsquo;une s\u00e9rie de macro-variables index\u00e9es, ou g\u00e9n\u00e9rer un d\u00e9compte total via l&rsquo;instruction INTO :liste_tables SEPARATED BY &lsquo; &lsquo;.<\/p>\n<p>Il suffit d\u00e8s lors de concevoir une boucle macro it\u00e9rative, r\u00e9gie par l&rsquo;instruction %DO index = 1 %TO &amp;NombreTotalDeTables;, pour balayer s\u00e9quentiellement chaque \u00e9l\u00e9ment de la liste. \u00c0 chaque it\u00e9ration de la boucle, la macro r\u00e9sout le nom de la table courante, instancie l&rsquo;appel \u00e0 la proc\u00e9dure PROC EXPORT en redirigeant le flux vers un onglet individualis\u00e9 ou vers une s\u00e9rie de classeurs distincts, et consigne la progression de la transaction dans le journal syst\u00e8me. Cette automatisation industrielle d\u00e9cuple la productivit\u00e9 du statisticien, lui permettant d&rsquo;\u00e9vacuer des volumes massifs de donn\u00e9es tabulaires vers Excel au travers d&rsquo;un flux de traitement \u00e0 la fois \u00e9l\u00e9gant, robuste et totalement autonome.<\/p>\n<h2>9. Utilisation alternative du syst\u00e8me ODS (Output Delivery System) Excel<\/h2>\n<h3>9.1 Introduction \u00e0 la destination ODS EXCEL<\/h3>\n<p>Bien que la proc\u00e9dure PROC EXPORT demeure l&rsquo;outil d&rsquo;\u00e9lection pour le transfert de donn\u00e9es tabulaires brutes destin\u00e9es \u00e0 des recalculs, le syst\u00e8me de livraison des sorties <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/documentation.sas.com\">SAS Output Delivery System (ODS)<\/a> offre une approche conceptuelle radicalement diff\u00e9rente, centr\u00e9e sur la publication de rapports hautement stylis\u00e9s. Introduite pour succ\u00e9der \u00e0 l&rsquo;ancienne destination exp\u00e9rimentale ODS TAGSETS.EXCELXP, la destination native ODS EXCEL permet de concevoir des classeurs \u00e9lectroniques dot\u00e9s d&rsquo;un degr\u00e9 de sophistication graphique et structurelle que la proc\u00e9dure PROC EXPORT ne saurait structurellement atteindre.<\/p>\n<p>Le principe op\u00e9rationnel d&rsquo;ODS EXCEL repose sur l&rsquo;interception des flux de sortie produits par n&rsquo;importe quelle proc\u00e9dure proc\u00e9durale SAS (qu&rsquo;il s&rsquo;agisse de tableaux de statistiques descriptives issus de PROC TABULATE, d&rsquo;arbres d&rsquo;estimation produits par des mod\u00e8les mixtes ou de graphiques statistiques g\u00e9n\u00e9r\u00e9s par PROC SGPLOT). L&rsquo;architecture syntaxique repose sur un encadrement strict de la s\u00e9quence analytique : l&rsquo;instruction ODS EXCEL FILE=\u00a0\u00bbchemin\/Rapport.xlsx\u00a0\u00bb OPTIONS(&#8230;) proc\u00e8de \u00e0 l&rsquo;ouverture du canal de communication vers le fichier cible, apr\u00e8s quoi les diff\u00e9rentes proc\u00e9dures SAS s&rsquo;ex\u00e9cutent normalement en envoyant leurs rendus visuels dans ce tuyau virtuel, avant que la commande ODS EXCEL CLOSE ne vienne sceller l&rsquo;archive OpenXML et achever l&rsquo;\u00e9criture sur le disque h\u00f4te.<\/p>\n<p>Cette approche permet de transcender les fronti\u00e8res du tableau de donn\u00e9es standard. ODS EXCEL offre la facult\u00e9 unique de mixer au sein d&rsquo;une m\u00eame feuille de calcul des blocs d&rsquo;informations composites : des titrages \u00e9ditoriaux riches, des tableaux de contingence stylis\u00e9s, des paragraphes de commentaires m\u00e9thodologiques et des repr\u00e9sentations graphiques vectorielles haute r\u00e9solution int\u00e9gr\u00e9es directement au c\u0153ur de la grille de calcul, cr\u00e9ant ainsi des livrables de restitution pr\u00eats \u00e0 \u00eatre pr\u00e9sent\u00e9s aux instances de d\u00e9cision.<\/p>\n<h3>9.2 Personnalisation avanc\u00e9e de la mise en page<\/h3>\n<p>Le v\u00e9ritable potentiel de la destination ODS EXCEL r\u00e9side dans sa capacit\u00e9 de param\u00e9trage typographique et ergonomique extr\u00eamement fine, pilot\u00e9e au travers d&rsquo;une multitude d&rsquo;options de sous-syst\u00e8me d\u00e9clar\u00e9es au sein de l&rsquo;instruction d&rsquo;ouverture ou modul\u00e9es par des commandes interm\u00e9diaires. L&rsquo;analyste peut ainsi rompre avec l&rsquo;aust\u00e9rit\u00e9 visuelle des tables brutes pour adopter des chartes graphiques sophistiqu\u00e9es conformes aux standards institutionnels les plus exigeants.<\/p>\n<p>L&rsquo;option STYLE= permet de s\u00e9lectionner des mod\u00e8les de mise en forme pr\u00e9d\u00e9finis au sein du r\u00e9f\u00e9rentiel SAS (tels que les styles Journal, Statistical, HTMLBlue ou Daisy), ou de concevoir des styles totalement personnalis\u00e9s via la proc\u00e9dure PROC TEMPLATE. Ces styles r\u00e9gissent la famille de polices de caract\u00e8res, les dimensions scalaires des textes, l&rsquo;alternance chromatique des lignes de donn\u00e9es (effet de z\u00e9brage facilitant la lecture optique des grands tableaux) ainsi que la coloration conditionnelle des cellules de bordures.<\/p>\n<p>Au-del\u00e0 de l&rsquo;esth\u00e9tique pure, les options de mise en page permettent de ma\u00eetriser avec pr\u00e9cision l&rsquo;exp\u00e9rience utilisateur au sein de Microsoft Excel. L&rsquo;instruction sub-ordonn\u00e9e OPTIONS(SHEET_INTERVAL=&rsquo;PAGE&rsquo;) permet de dicter au moteur SAS les conditions pr\u00e9cises de g\u00e9n\u00e9ration d&rsquo;un nouvel onglet, cr\u00e9ant automatiquement une nouvelle feuille \u00e0 chaque nouvelle proc\u00e9dure ex\u00e9cut\u00e9e ou \u00e0 chaque rupture d&rsquo;une variable de groupe sp\u00e9cifi\u00e9e dans une clause BY. De m\u00eame, des fonctionnalit\u00e9s avanc\u00e9es telles que l&rsquo;ajustement automatique de la largeur des colonnes aux dimensions de leur contenu textuel le plus \u00e9tendu (AUTOFIT_HEIGHT=&rsquo;YES&rsquo;), le figeage des lignes d&rsquo;en-t\u00eate sup\u00e9rieures pour maintenir la lisibilit\u00e9 lors du d\u00e9filement vertical (FROZEN_HEADERS=&rsquo;YES&rsquo;), ou l&rsquo;insertion programmatique de m\u00e9tadonn\u00e9es d&rsquo;impression dans les pieds de page du classeur conf\u00e8rent aux documents g\u00e9n\u00e9r\u00e9s une finition professionnelle irr\u00e9prochable.<\/p>\n<h3>9.3 Arbitrage m\u00e9thodologique : Quand privil\u00e9gier ODS par rapport \u00e0 PROC EXPORT<\/h3>\n<p>Face \u00e0 la dualit\u00e9 m\u00e9thodologique incarn\u00e9e par PROC EXPORT d&rsquo;un c\u00f4t\u00e9 et le syst\u00e8me ODS EXCEL de l&rsquo;autre, le biostatisticien et l&rsquo;ing\u00e9nieur de donn\u00e9es doivent exercer un arbitrage \u00e9clair\u00e9 en fonction des objectifs assign\u00e9s au livrable et des contraintes computationnelles de l&rsquo;environnement de production. Choisir aveugl\u00e9ment l&rsquo;un ou l&rsquo;autre de ces canaux d&rsquo;exportation sans \u00e9valuer le cas d&rsquo;usage conduit invariablement \u00e0 des inefficacit\u00e9s op\u00e9rationnelles ou \u00e0 des d\u00e9convenues ergonomiques.<\/p>\n<p>La proc\u00e9dure PROC EXPORT doit \u00eatre imp\u00e9rativement privil\u00e9gi\u00e9e d\u00e8s lors que l&rsquo;objectif principal du transfert concerne l&rsquo;extraction de donn\u00e9es brutes destin\u00e9es \u00e0 alimenter des pipelines de transformation ult\u00e9rieurs (ETL), \u00e0 \u00eatre int\u00e9gr\u00e9es dans des bases de donn\u00e9es relationnelles ou \u00e0 servir de mat\u00e9riau matriciel pour des r\u00e9analyses ad hoc dans d&rsquo;autres environnements logiciels. Sa vitesse d&rsquo;ex\u00e9cution est sans \u00e9gale, sa consommation de ressources processeur (CPU) et d&rsquo;espace temporaire de m\u00e9moire vive demeure minimale, et elle garantit une absence totale d&rsquo;interf\u00e9rences visuelles (styles de bordures superflus, fusions de cellules g\u00eanantes pour les formules matricielles) au sein des tables s\u00e9rialis\u00e9es.<\/p>\n<p>\u00c0 l&rsquo;oppos\u00e9, la destination ODS EXCEL s&rsquo;impose avec force d\u00e8s lors que le destinataire du classeur est un comit\u00e9 de pilotage, un panel d&rsquo;\u00e9valuateurs cliniques ou une \u00e9quipe manag\u00e9riale exigeant un rapport de synth\u00e8se directement diffusable, lisible et mis en forme. La possibilit\u00e9 de compiler des tableaux crois\u00e9s dynamiques pr\u00e9format\u00e9s, d&rsquo;ins\u00e9rer des notes m\u00e9thodologiques en bas de page et d&rsquo;int\u00e9grer des courbes de survie ou des graphiques de r\u00e9gression conf\u00e8re \u00e0 ODS une sup\u00e9riorit\u00e9 incontestable sur le plan de la communication scientifique.<\/p>\n<p>Cet arbitrage esth\u00e9tique doit toutefois \u00eatre temp\u00e9r\u00e9 par des consid\u00e9rations d&#8217;empreinte m\u00e9moire. Le syst\u00e8me ODS construit l&rsquo;arbre hi\u00e9rarchique de l&rsquo;ensemble du document en m\u00e9moire tampon avant d&rsquo;op\u00e9rer la s\u00e9rialisation OpenXML d\u00e9finitive. Sur des volum\u00e9tries d&rsquo;observations consid\u00e9rables (d\u00e9passant plusieurs centaines de milliers de lignes), ODS EXCEL engendre une surconsommation drastique de m\u00e9moire vive pouvant provoquer des blocages du sous-syst\u00e8me de calcul ou des temps de g\u00e9n\u00e9ration exponentiels. Dans de tels contextes de volum\u00e9trie critique, la sobri\u00e9t\u00e9 m\u00e9canique de PROC EXPORT s&rsquo;affirme comme le seul choix techniquement viable.<\/p>\n<h2>10. R\u00e9solution des erreurs courantes et gestion des verrous de fichiers<\/h2>\n<h3>10.1 L&rsquo;erreur de verrouillage de fichier (File Lock Error)<\/h3>\n<p>Au panth\u00e9on des incidents techniques interrompant abruptement l&rsquo;ex\u00e9cution des programmes d&rsquo;exportation de donn\u00e9es SAS vers Excel, l&rsquo;erreur de verrouillage de ressource (File Lock Error) occupe incontestablement le premier rang par sa fr\u00e9quence de survenue. Cette d\u00e9faillance se manifeste dans le journal syst\u00e8me par un message d&rsquo;alerte sans \u00e9quivoque : \u00ab\u00a0ERROR: Resource temporarily unavailable\u00a0\u00bb, \u00ab\u00a0ERROR: Permission denied\u00a0\u00bb ou encore \u00ab\u00a0ERROR: A lock is not available for file&#8230;\u00a0\u00bb.<\/p>\n<p>L&rsquo;\u00e9tiologie de cette panne informatique r\u00e9side dans la gestion exclusive des droits d&rsquo;acc\u00e8s aux fichiers par les syst\u00e8mes d&rsquo;exploitation modernes, et plus singuli\u00e8rement sous Microsoft Windows. Lorsqu&rsquo;un utilisateur ouvre un classeur Excel au sein de l&rsquo;application bureautique pour en examiner le contenu, le syst\u00e8me d&rsquo;exploitation attribue un verrou exclusif en \u00e9criture au processus EXCEL.EXE afin d&#8217;emp\u00eacher que deux applications concurrentes ne corrompent simultan\u00e9ment l&rsquo;int\u00e9grit\u00e9 binaire du fichier. Si, dans le m\u00eame intervalle temporel, une session SAS tente d&rsquo;ex\u00e9cuter un script PROC EXPORT dot\u00e9 de l&rsquo;option REPLACE ciblant exactement ce m\u00eame fichier physique, le sous-syst\u00e8me d&rsquo;entr\u00e9e-sortie de SAS se heurte \u00e0 une fin de non-recevoir cat\u00e9gorique de la part du syst\u00e8me h\u00f4te, provoquant l&rsquo;interruption imm\u00e9diate de la transaction.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/export41.jpg\" alt=\"\" \/><\/figure>\n<p>La r\u00e9solution de cette impasse op\u00e9rationnelle requiert des strat\u00e9gies adapt\u00e9es au contexte de travail. Sur un poste de travail individuel sous environnement Windows, le premier r\u00e9flexe de d\u00e9pannage consiste naturellement \u00e0 fermer scrupuleusement toute instance active du classeur cible au sein de l&rsquo;interface Microsoft Excel avant de relancer l&rsquo;ex\u00e9cution du code SAS. Toutefois, il advient fr\u00e9quemment qu&rsquo;une session Excel soit ferm\u00e9e visuellement par l&rsquo;utilisateur mais qu&rsquo;un processus r\u00e9siduel fant\u00f4me demeure actif en arri\u00e8re-plan au sein de la table des t\u00e2ches du syst\u00e8me d&rsquo;exploitation, maintenant ind\u00fbment le verrouillage binaire sur le fichier. Dans ce cas de figure, l&rsquo;analyste doit inspecter le Gestionnaire des t\u00e2ches de Windows et proc\u00e9der \u00e0 l&rsquo;arr\u00eat forc\u00e9 du processus EXCEL.EXE orphelin.<\/p>\n<p>Dans les environnements multi-utilisateurs h\u00e9berg\u00e9s sur des serveurs distants ou sous des distributions Linux, la lib\u00e9ration des verrous orphelins implique le recours \u00e0 des commandes administratives sp\u00e9cialis\u00e9es au niveau du terminal syst\u00e8me, telles que l&rsquo;utilitaire fuser ou la commande lsof (List Open Files), permettant d&rsquo;identifier le processus utilisateur sp\u00e9cifique retenant le descripteur de fichier et d&rsquo;ordonner sa terminaison contr\u00f4l\u00e9e via l&rsquo;instruction kill. L&rsquo;adoption d&rsquo;une discipline de d\u00e9veloppement stricte, dissociant syst\u00e9matiquement les r\u00e9pertoires d&rsquo;\u00e9criture de production des r\u00e9pertoires de consultation partag\u00e9s, pr\u00e9vient en amont la survenue de ces conflits d&rsquo;acc\u00e8s concurrents.<\/p>\n<h3>10.2 D\u00e9passement des limites dimensionnelles et troncature<\/h3>\n<p>Une cause majeure d&rsquo;\u00e9chec ou d&rsquo;alt\u00e9ration silencieuse des donn\u00e9es lors de l&rsquo;exportation r\u00e9side dans la confrontation directe avec les limites physiques et structurelles inh\u00e9rentes \u00e0 la norme des tableurs. Bien que la transition du format binaire obsol\u00e8te XLS vers le format OpenXML moderne XLSX ait consid\u00e9rablement repouss\u00e9 les fronti\u00e8res dimensionnelles, celles-ci demeurent finies et continuent de contraindre rigoureusement la manipulation de grands jeux de donn\u00e9es statistiques.<\/p>\n<p>La norme technique actuelle de Microsoft Excel plafonne math\u00e9matiquement l&rsquo;architecture d&rsquo;une feuille de calcul \u00e0 un maximum absolu de 1 048 576 lignes d&rsquo;observations et de 16 384 colonnes de variables. Si une proc\u00e9dure PROC EXPORT est appel\u00e9e sur une table SAS dont la volum\u00e9trie exc\u00e8de ce contingent critique (par exemple une base de donn\u00e9es de pharmacovigilance ou de transactions de sant\u00e9 regroupant 1,5 million d&rsquo;enregistrements), le moteur DBMS=XLSX est incapable de loger le surplus d&rsquo;enregistrements au sein de la feuille d\u00e9sign\u00e9e. Selon la r\u00e9vision de maintenance du logiciel, SAS consigne une erreur fatale dans le journal syst\u00e8me ou interrompt l&rsquo;\u00e9criture au franchissement de la 1 048 576\u00e8me ligne, amputant la table de son r\u00e9sidu sans que l&rsquo;utilisateur non averti ne s&rsquo;en rende imm\u00e9diatement compte s&rsquo;il ne consulte pas le journal d&rsquo;ex\u00e9cution.<\/p>\n<p>Une probl\u00e9matique tout aussi insidieuse concerne la troncature scalaire des cha\u00eenes de caract\u00e8res textuelles volumineuses. Au sein d&rsquo;une cellule de tableur Excel, la sp\u00e9cification logicielle limite la longueur d&rsquo;une cha\u00eene de texte \u00e0 un plafond de 32 767 caract\u00e8res, dont seuls les 1 024 premiers peuvent \u00eatre affich\u00e9s visuellement de mani\u00e8re fluide au sein de la grille sans activation de la barre de formule \u00e9tendue. Si la table SAS contient des variables de texte libres (notes d&rsquo;investigateurs cliniques, verbatims d&rsquo;enqu\u00eates ou s\u00e9quences bio-informatiques s\u00e9rialis\u00e9es de tr\u00e8s grande longueur), tout d\u00e9passement de ces seuils dimensionnels expose la cellule \u00e0 une troncature pure et simple du message au-del\u00e0 du seuil critique, d\u00e9truisant irr\u00e9versiblement une fraction de la m\u00e9tadonn\u00e9e textuelle lors de la conversion OpenXML.<\/p>\n<h3>10.3 Incoh\u00e9rences de formats et d&rsquo;encodage de caract\u00e8res<\/h3>\n<p>L&rsquo;internationalisation des projets de recherche et l&rsquo;utilisation continue d&rsquo;alphabets comportant des signes diacritiques complexes (accents aigus, graves, circonflexes, c\u00e9dilles propres \u00e0 la langue fran\u00e7aise ou caract\u00e8res non latins) r\u00e9v\u00e8lent fr\u00e9quemment des dysfonctionnements subtils lors du passage de SAS vers Microsoft Excel, d\u00e9sign\u00e9s sous l&rsquo;appellation d&rsquo;incoh\u00e9rences d&rsquo;encodage de caract\u00e8res.<\/p>\n<p>Ce ph\u00e9nom\u00e8ne prend racine dans la confrontation entre les tables de correspondances num\u00e9riques des jeux de caract\u00e8res (code pages). Lorsqu&rsquo;une station de travail SAS fonctionne sous un encodage mono-octet traditionnel h\u00e9rit\u00e9 du monde mainframe ou des premiers syst\u00e8mes Windows (tel que WINDOWS-1252 ou ISO-8859-1 \/ Latin1), chaque glyphe est cod\u00e9 sur un octet unique. Or, le format contemporain .xlsx s&rsquo;appuie structurellement sur le standard universel de l&rsquo;Unicode, et plus pr\u00e9cis\u00e9ment sur la transformation multioctets UTF-8 pour s\u00e9rialiser ses documents XML internes. Si le sous-syst\u00e8me de conversion de SAS ne proc\u00e8de pas \u00e0 une translitt\u00e9ration propre des points de code lors de l&rsquo;exportation, l&rsquo;ouverture du classeur au sein d&rsquo;Excel d\u00e9voilera des s\u00e9quences typographiques corrompues (par exemple, \u00ab\u00a0D\u00c3\u00a9c\u00c3\u00a8s\u00a0\u00bb au lieu de \u00ab\u00a0D\u00e9c\u00e8s\u00a0\u00bb).<\/p>\n<p>Pour r\u00e9soudre m\u00e9thodologiquement ces discordances et garantir l&rsquo;int\u00e9grit\u00e9 orthographique des libell\u00e9s scientifiques, plusieurs leviers doivent \u00eatre actionn\u00e9s. En premier lieu, il est recommand\u00e9 de standardiser l&rsquo;environnement d&rsquo;ex\u00e9cution de la session SAS sous l&rsquo;encodage natif UTF-8, configuration qui est d\u00e9sormais le standard des architectures analytiques modernes. En second lieu, au niveau de la proc\u00e9dure PROC EXPORT ou de l&rsquo;\u00e9tape de pr\u00e9paration des donn\u00e9es, l&rsquo;utilisation explicite de l&rsquo;option ENCODING=&rsquo;UTF-8&prime; ou de fonctions scalaires de transcodage de cha\u00eene telles que KCVT permet de forcer la conversion des flux textuels vers la nomenclature cible, \u00e9radiquant les rejets de lignes cons\u00e9cutifs aux caract\u00e8res non r\u00e9solus dans le fichier journal.<\/p>\n<p>Enfin, les erreurs de rejet de lignes au sein du journal d&rsquo;ex\u00e9cution trouvent parfois leur source dans la pr\u00e9sence de caract\u00e8res de contr\u00f4le non imprimables (tels que les tabulations horizontales, les retours chariot ASCII 13 ou les sauts de ligne ASCII 10) involontairement int\u00e9gr\u00e9s au sein de variables de type caract\u00e8re lors de saisies manuelles d&rsquo;op\u00e9rateurs. L&rsquo;application pr\u00e9ventive de la fonction de nettoyage COMPBL ou de l&rsquo;expression r\u00e9guli\u00e8re PRXCHANGE au sein d&rsquo;une \u00e9tape DATA d&rsquo;assainissement pr\u00e9alable permet de purger la table de tout caract\u00e8re corrupteur avant le d\u00e9clenchement de la proc\u00e9dure d&rsquo;exportation vers le tableur.<\/p>\n<h2>11. Optimisation des performances pour l&rsquo;exportation de donn\u00e9es volumineuses<\/h2>\n<h3>11.1 Filtrage et s\u00e9lection en amont dans l&rsquo;\u00e9tape d&rsquo;export<\/h3>\n<p>Dans le domaine du traitement de donn\u00e9es quantitatives, l&rsquo;optimisation des flux de traitement repose sur un axiome fondamental d&rsquo;\u00e9conomie computationnelle : la r\u00e9duction de l&#8217;empreinte volum\u00e9trique doit \u00eatre op\u00e9r\u00e9e le plus en amont possible au sein du pipeline d&rsquo;ex\u00e9cution. Exporter l&rsquo;int\u00e9gralit\u00e9 d&rsquo;une table d&rsquo;entrep\u00f4t de donn\u00e9es statistiques contenant plusieurs dizaines de millions d&rsquo;octets et des centaines de colonnes techniques pour n&rsquo;en exploiter finalement qu&rsquo;une poign\u00e9e au sein d&rsquo;un classeur Excel constitue une gabegie de ressources de calcul et de bande passante d&rsquo;entr\u00e9e-sortie.<\/p>\n<p>La proc\u00e9dure PROC EXPORT offre une flexibilit\u00e9 remarquable en autorisant l&rsquo;utilisation imm\u00e9diate des options de table SAS directement au sein de la d\u00e9claration de l&rsquo;instruction DATA=. L&rsquo;analyste peut ainsi encapsuler entre parenth\u00e8ses les options de s\u00e9lection de variables DROP= ou KEEP= afin d&rsquo;\u00e9laguer drastiquement le sch\u00e9ma relationnel transmis au moteur d&rsquo;exportation. En sp\u00e9cifiant par exemple DATA=Projet.Cohorte(KEEP=Patient_ID Age Sexe Statut_Clinique), seules les quatre variables explicitement d\u00e9sign\u00e9es seront mobilis\u00e9es en m\u00e9moire vive et achemin\u00e9es vers le constructeur OpenXML, d\u00e9chargeant le processeur de la gestion de toutes les colonnes interm\u00e9diaires r\u00e9sidant dans la table m\u00e8re.<\/p>\n<p>De m\u00eame, l&rsquo;injection de l&rsquo;option de filtrage conditionnel WHERE= permet de restreindre chirurgicalement le p\u00e9rim\u00e8tre des observations export\u00e9es sans exiger la cr\u00e9ation pr\u00e9alable d&rsquo;une table SAS temporaire sur le disque. Une instruction formul\u00e9e sous la forme DATA=Projet.Mesures(WHERE=(Annee_Suivi = 2023 AND Statut_Validation = &lsquo;COMPLET&rsquo;)) ordonne au sous-syst\u00e8me de lecture de SAS de filtrer les flux d&rsquo;enregistrements \u00e0 la vol\u00e9e. Cette approche d&rsquo;ing\u00e9nierie r\u00e9duit de mani\u00e8re drastique l&#8217;empreinte m\u00e9moire avant m\u00eame l&rsquo;\u00e9criture sur le disque, limitant le livrable Excel aux strictes observations requises pour la diffusion et pr\u00e9servant les performances globales du serveur de calcul.<\/p>\n<h3>11.2 Gestion des index et de la m\u00e9moire tampon de SAS<\/h3>\n<p>L&rsquo;optimisation des d\u00e9bits de transfert lors de l&rsquo;exportation de tables d&rsquo;envergure interm\u00e9diaire ou massive implique une configuration fine des m\u00e9canismes d&rsquo;entr\u00e9e-sortie (I\/O) du moteur SAS et une gouvernance avis\u00e9e des sous-syst\u00e8mes de m\u00e9moire tampon. La vitesse \u00e0 laquelle SAS lit les blocs de donn\u00e9es sur le stockage sous-jacent et les r\u00e9encode sous forme de structures XML compress\u00e9es est directement tributaire du dimensionnement des tampons de communication.<\/p>\n<p>L&rsquo;utilisation judicieuse de l&rsquo;option syst\u00e8me IBUFSIZE (Index Buffer Size) et de l&rsquo;option BUFSIZE permet d&rsquo;ajuster la taille des blocs de transfert de donn\u00e9es. Sur des syst\u00e8mes traitant des volum\u00e9tries substantielles, assigner une valeur de tampon de lecture plus g\u00e9n\u00e9reuse (par exemple via OPTIONS BUFSIZE=64K ou BUFSIZE=128K) permet au sous-syst\u00e8me de stockage de proc\u00e9der \u00e0 des lectures s\u00e9quentielles par blocs massifs, r\u00e9duisant consid\u00e9rablement le nombre total d&rsquo;acc\u00e8s physiques aux t\u00eates de lecture des disques durs ou minimisant la surcharge de requ\u00eates r\u00e9seau sur les baies de stockage de type SAN ou NAS.<\/p>\n<p>Une attention m\u00e9ticuleuse doit \u00e9galement \u00eatre accord\u00e9e \u00e0 l&rsquo;interaction entre la compression native des tables SAS et le processus d&rsquo;exportation. Lorsqu&rsquo;une table de donn\u00e9es est stock\u00e9e sous une forme compress\u00e9e dans SAS via l&rsquo;option COMPRESS=YES (ou COMPRESS=BINARY), le moteur de donn\u00e9es SAS doit d\u00e9compresser chaque page d&rsquo;enregistrement en m\u00e9moire vive avant de pouvoir transmettre les scalaires au pilote DBMS=XLSX. Ce m\u00e9canisme de d\u00e9compression consomme des cycles de processeur substantiels. Si les performances d&rsquo;exportation s&rsquo;av\u00e8rent critiques, il peut \u00eatre judicieux de s\u00e9quencer le flux analytique en d\u00e9compressant pr\u00e9alablement les donn\u00e9es dans une zone de m\u00e9moire volatile haute performance avant d&rsquo;initier la commande de conversion externe.<\/p>\n<p>Enfin, la surveillance de l&rsquo;espace de stockage allou\u00e9 \u00e0 la biblioth\u00e8que temporaire SASWORK demeure imp\u00e9rative. Durant la compilation et la constitution de l&rsquo;archive ZIP encapsulant les fichiers XML constitutifs du classeur XLSX, le pilote DBMS=XLSX instancie des fichiers temporaires volumineux au sein de cet espace de travail. Une saturation inopin\u00e9e du volume de disque allou\u00e9 \u00e0 SASWORK en plein cours d&rsquo;\u00e9criture provoquera l&rsquo;interruption cataclysmique de la session SAS, ruinant l&rsquo;op\u00e9ration d&rsquo;exportation et contraignant \u00e0 une r\u00e9initialisation int\u00e9grale des processus.<\/p>\n<h3>11.3 Alternative du format d\u00e9limit\u00e9 pour le Big Data<\/h3>\n<p>En d\u00e9pit des optimisations algorithmiques continues int\u00e9gr\u00e9es au sein du pilote DBMS=XLSX, il existe un seuil volum\u00e9trique critique au-del\u00e0 duquel l&rsquo;utilisation du conteneur Microsoft Excel (.xlsx) cesse d&rsquo;\u00eatre m\u00e9thodologiquement viable ou informatiquement pertinente. Lorsque les tables d&rsquo;analyse franchissent la barre des plusieurs centaines de milliers d&rsquo;enregistrements, la charge de traitement impos\u00e9e par la g\u00e9n\u00e9ration de millions de balises XML textuelles au sein de la structure compress\u00e9e du fichier XLSX induit une d\u00e9gradation exponentielle des temps de calcul et une surchauffe de la charge CPU.<\/p>\n<p>D\u00e8s lors que la volum\u00e9trie approche ou d\u00e9passe le million d&rsquo;enregistrements, l&rsquo;analyste rigoureux doit abandonner le format de classeur enrichi pour se tourner vers l&rsquo;alternative universelle offerte par les fichiers texte d\u00e9limit\u00e9s, au premier rang desquels figure le format CSV (Comma-Separated Values). L&rsquo;invocation de la proc\u00e9dure PROC EXPORT avec l&rsquo;argument DBMS=CSV d\u00e9ploie une m\u00e9canique d&rsquo;une efficacit\u00e9 brute in\u00e9gal\u00e9e : le moteur \u00e9crit s\u00e9quentiellement les flux d&rsquo;octets sur le disque avec une surcharge protocolaire quasi nulle, sans compression complexe et sans instanciation de sch\u00e9mas de styles superflus.<\/p>\n<p>Le fichier CSV g\u00e9n\u00e9r\u00e9 s&rsquo;affranchit de facto du plafond dimensionnel des 1 048 576 lignes d&rsquo;Excel, pouvant comporter des dizaines de millions d&rsquo;observations sans la moindre instabilit\u00e9 logicielle. L&rsquo;int\u00e9gration de ces flux de donn\u00e9es massives au sein de l&rsquo;environnement bureautique Microsoft ne s&rsquo;effectue plus d\u00e8s lors par une ouverture directe du fichier dans la grille classique du tableur \u2014 ce qui provoquerait une troncature imm\u00e9diate \u2014, mais par l&rsquo;interm\u00e9diaire du composant <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/learn.microsoft.com\/fr-fr\/power-query\/\">Microsoft Power Query<\/a> int\u00e9gr\u00e9 \u00e0 Excel.<\/p>\n<p>Power Query ing\u00e8re les flux de donn\u00e9es CSV d\u00e9limit\u00e9s directement au sein de son mod\u00e8le relationnel interne en m\u00e9moire (technologie VertiPaq \/ PowerPivot), court-circuitant totalement les limitations dimensionnelles de la grille de calcul bidimensionnelle traditionnelle. L&rsquo;utilisateur final b\u00e9n\u00e9ficie ainsi de la puissance d&rsquo;exploration analytique et de conception de tableaux crois\u00e9s dynamiques d&rsquo;Excel tout en s&rsquo;appuyant sur un flux d&rsquo;exportation SAS d&rsquo;une v\u00e9locit\u00e9 et d&rsquo;une r\u00e9silience incomparables, scellant la fusion harmonieuse de la performance industrielle et de l&rsquo;accessibilit\u00e9 d\u00e9cisionnelle.<\/p>\n<h2>12. Bonnes pratiques de tra\u00e7abilit\u00e9, de conformit\u00e9 et d&rsquo;int\u00e9grit\u00e9 des donn\u00e9es<\/h2>\n<h3>12.1 Documentation syst\u00e9matique du journal d&rsquo;ex\u00e9cution (Log)<\/h3>\n<p>Dans le cadre des protocoles de recherche soumis \u00e0 des exigences r\u00e9glementaires strictes \u2014 telles que les Bonnes Pratiques Cliniques (BPC) r\u00e9gies par l&rsquo;ICH ou les normes d&rsquo;int\u00e9grit\u00e9 des donn\u00e9es \u00e9lectroniques dict\u00e9es par le titre 21 CFR Part 11 de la FDA am\u00e9ricaine \u2014, une op\u00e9ration de traitement ou de conversion informatique ne poss\u00e8de aucune valeur probante si elle n&rsquo;est pas assortie d&rsquo;une preuve d&rsquo;audit irr\u00e9futable attestant de son d\u00e9roulement sans faille. La documentation syst\u00e9matique du journal d&rsquo;ex\u00e9cution SAS (SAS Log) constitue le socle fondamental de cette exigence d&rsquo;imputabilit\u00e9.<\/p>\n<p>Le journal syst\u00e8me ne doit sous aucun pr\u00e9texte demeurer un artefact volatil affich\u00e9 temporairement \u00e0 l&rsquo;\u00e9cran de l&rsquo;environnement de d\u00e9veloppement avant d&rsquo;\u00eatre \u00e9cras\u00e9 par la session suivante. Il convient d&rsquo;ordonner la sauvegarde programmatique p\u00e9renne de ce flux au moyen de l&rsquo;instruction PROC PRINTTO. En d\u00e9clarant en amont du pipeline la commande PROC PRINTTO LOG=\u00a0\u00bb\/repertoire\/journaux\/Export_Audit_20231025.log\u00a0\u00bb NEW; puis en r\u00e9tablissant la redirection standard via PROC PRINTTO; \u00e0 l&rsquo;issue de l&rsquo;ex\u00e9cution, l&rsquo;int\u00e9gralit\u00e9 des transactions syst\u00e8me, des horodatages \u00e0 la milliseconde, des d\u00e9comptes d&rsquo;enregistrements transf\u00e9r\u00e9s et des \u00e9ventuels signaux d&rsquo;alerte se trouve fig\u00e9e sur un support inalt\u00e9rable.<\/p>\n<p>Pour parachever l&rsquo;assurance de non-alt\u00e9ration des valeurs de mesures exp\u00e9rimentales entre la base source et le classeur g\u00e9n\u00e9r\u00e9, il est hautement recommand\u00e9 d&rsquo;impl\u00e9menter des algorithmes de r\u00e9conciliation automatis\u00e9e reposant sur des sommes de contr\u00f4le num\u00e9riques (checksums) ou des totaux de contr\u00f4le de variables cl\u00e9s. En calculant au sein de SAS la somme arithm\u00e9tique globale d&rsquo;une variable quantitative pivot et en venant confronter programmatiquement ce total de contr\u00f4le avec la somme calcul\u00e9e a posteriori sur la feuille Excel, l&rsquo;analyste apporte la preuve math\u00e9matique que la passerelle logicielle n&rsquo;a induit aucune d\u00e9rive de pr\u00e9cision scalaire, aucun arrondi arbitraire et aucune perte r\u00e9siduelle d&rsquo;information au cours du transit num\u00e9rique.<\/p>\n<h3>12.2 Protection et gouvernance des donn\u00e9es export\u00e9es<\/h3>\n<p>La diss\u00e9mination de jeux de donn\u00e9es au travers de tableurs \u00e9lectroniques pr\u00e9sente des risques majeurs en mati\u00e8re de s\u00e9curit\u00e9 de l&rsquo;information et de conformit\u00e9 r\u00e9glementaire. Alors qu&rsquo;un syst\u00e8me analytique SAS d&rsquo;entreprise b\u00e9n\u00e9ficie d&rsquo;une infrastructure de gouvernance robuste \u2014 caract\u00e9ris\u00e9e par une authentification centralis\u00e9e, des contr\u00f4les d&rsquo;acc\u00e8s bas\u00e9s sur les r\u00f4les (RBAC) et des pistes d&rsquo;audit immuables \u2014, un classeur Microsoft Excel export\u00e9 sur un poste de travail ou d\u00e9pos\u00e9 sur un serveur de partage devient un conteneur \u00e9minemment mobile, ais\u00e9ment duplicable et hautement vuln\u00e9rable aux fuites de donn\u00e9es accidentelles ou malveillantes.<\/p>\n<p>D\u00e8s lors, l&rsquo;exportation de donn\u00e9es statistiques doit \u00eatre rigoureusement subordonn\u00e9e au respect des cadres l\u00e9gislatifs de protection de la vie priv\u00e9e, au premier rang desquels figure le R\u00e8glement G\u00e9n\u00e9ral sur la Protection des Donn\u00e9es (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.cnil.fr\/fr\/reglement-europeen-protection-donnees\">RGPD<\/a>) en vigueur au sein de l&rsquo;Union europ\u00e9enne, ainsi que la l\u00e9gislation HIPAA aux \u00c9tats-Unis pour les informations de sant\u00e9 nominatives. Avant d&rsquo;engager toute proc\u00e9dure PROC EXPORT, le biostatisticien a l&rsquo;obligation \u00e9thique et l\u00e9gale de proc\u00e9der \u00e0 l&rsquo;anonymisation ou \u00e0 la pseudonymisation stricte du jeu de donn\u00e9es au sein d&rsquo;une \u00e9tape de pr\u00e9paration SAS pr\u00e9alable.<\/p>\n<p>Ce protocole implique la purge d\u00e9finitive de toute variable directement identifiante (noms patronymiques, pr\u00e9noms, adresses postales pr\u00e9cises, num\u00e9ros de s\u00e9curit\u00e9 sociale ou coordonn\u00e9es de contact) au moyen de l&rsquo;option DROP=. Les variables quasi-identifiantes (telles que les dates de naissance compl\u00e8tes ou les identifiants hospitaliers natifs) doivent \u00eatre converties en donn\u00e9es agr\u00e9g\u00e9es (classes d&rsquo;\u00e2ge d\u00e9cennales) ou hach\u00e9es au moyen d&rsquo;algorithmes cryptographiques irr\u00e9versibles (tels que la fonction SHA256 int\u00e9gr\u00e9e \u00e0 SAS) coupl\u00e9s \u00e0 un sel cryptographique s\u00e9curis\u00e9. Seules les donn\u00e9es rigoureusement n\u00e9cessaires \u00e0 l&rsquo;analyse sollicit\u00e9e doivent franchir la fronti\u00e8re de l&rsquo;environnement s\u00e9curis\u00e9 SAS vers le tableur de consultation.<\/p>\n<h3>12.3 \u00c9tablissement d&rsquo;un protocole standardis\u00e9 d&rsquo;exportation de laboratoire<\/h3>\n<p>La p\u00e9rennit\u00e9 organisationnelle d&rsquo;un laboratoire de recherche ou d&rsquo;un d\u00e9partement de biostatistique repose sur sa capacit\u00e9 \u00e0 s&rsquo;affranchir des habitudes de programmation disparates propres \u00e0 chaque individu pour instaurer une culture d&rsquo;excellence op\u00e9rationnelle formalis\u00e9e. L&rsquo;\u00e9tablissement d&rsquo;une Proc\u00e9dure Op\u00e9rationnelle Standardis\u00e9e (Standard Operating Procedure &#8211; SOP) d\u00e9di\u00e9e \u00e0 l&rsquo;exportation des donn\u00e9es tabulaires constitue la pierre angulaire de cette gouvernance scientifique.<\/p>\n<p>Ce protocole standardis\u00e9 doit consigner sans ambigu\u00eft\u00e9 les r\u00e8gles d&rsquo;architecture applicative applicables \u00e0 tout projet analytique : interdiction formelle des pilotes obsol\u00e8tes (DBMS=XLS), obligation d&rsquo;utiliser le pilote DBMS=XLSX nativement document\u00e9, standardisation des conventions de nommage des r\u00e9pertoires et des macro-variables d&rsquo;ancrage, et v\u00e9rification scrupuleuse des formats calendaires et d\u00e9cimaux. Tout script analytique destin\u00e9 \u00e0 la production d&rsquo;un livrable officiel doit obligatoirement int\u00e9grer le cadre de macro-commandes standardis\u00e9 du laboratoire, garantissant l&rsquo;homog\u00e9n\u00e9it\u00e9 structurelle de l&rsquo;ensemble des productions documentaires de l&rsquo;\u00e9quipe.<\/p>\n<p>De surcro\u00eet, le protocole de laboratoire doit exiger que chaque classeur Excel export\u00e9 soit syst\u00e9matiquement accompagn\u00e9 d&rsquo;un dictionnaire de donn\u00e9es exhaustif (codebook). Ce dictionnaire, qui peut constituer le premier onglet introductif du classeur g\u00e9n\u00e9r\u00e9 via une \u00e9tape programm\u00e9e, d\u00e9taille de mani\u00e8re chirurgicale la nomenclature de chaque colonne, le type de variable sous-jacent, les unit\u00e9s de mesure physiques associ\u00e9es, la signification univoque de chaque code cat\u00e9goriel ainsi que la codification retenue pour les valeurs manquantes. Enfin, l&rsquo;ensemble de ce pipeline analytique, depuis l&rsquo;ingestion de la donn\u00e9e brute jusqu&rsquo;\u00e0 la s\u00e9rialisation finale du classeur de restitution, doit \u00eatre m\u00e9ticuleusement consign\u00e9 et versionn\u00e9 au sein du Plan de Gestion des Donn\u00e9es (Data Management Plan &#8211; DMP) du projet de recherche, scellant l&rsquo;alignement irr\u00e9prochable de la d\u00e9marche scientifique avec les principes fondamentaux de transparence, de tra\u00e7abilit\u00e9 et de reproductibilit\u00e9 de la science contemporaine.<\/p>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<p>Alliance for Clinical Trials in Oncology. (2020). <em>Best practices for data management and transfer in multi-center clinical trials<\/em>. Duke University Clinical Research Institute.<\/p>\n<p>Commission Nationale de l&rsquo;Informatique et des Libert\u00e9s. (2018). <em>R\u00e8glement g\u00e9n\u00e9ral sur la protection des donn\u00e9es (RGPD) : Guide m\u00e9thodologique de la s\u00e9curit\u00e9 des donn\u00e9es personnelles<\/em>. \u00c9ditions des Journaux Officiels. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.cnil.fr\/fr\/reglement-europeen-protection-donnees\">https:\/\/www.cnil.fr\/fr\/reglement-europeen-protection-donnees<\/a><\/p>\n<p>International Organization for Standardization. (2016). <em>Information technology \u2014 Document description and processing languages \u2014 Office Open XML File Formats \u2014 Part 1: Fundamentals and Markup Language Reference<\/em> (ISO\/IEC Standard No. 29500-1:2016). <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.iso.org\/standard\/71691.html\">https:\/\/www.iso.org\/standard\/71691.html<\/a><\/p>\n<p>Microsoft Corporation. (2023). <em>Sp\u00e9cifications et limites relatives \u00e0 Microsoft Excel<\/em>. Microsoft Support Documentation. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/support.microsoft.com\/fr-fr\/office\/sp%C3%A9cifications-et-limites-relatives-%C3%A0-excel-1672b34d-7043-467e-8e27-269d656771c3\">https:\/\/support.microsoft.com\/fr-fr\/office\/<\/a><\/p>\n<p>SAS Institute Inc. (2019). <em>SAS\/ACCESS 9.4 Interface to PC Files: Reference, Fifth Edition<\/em>. SAS Institute Inc.<\/p>\n<p>SAS Institute Inc. (2021). <em>SAS 9.4 Output Delivery System: User&rsquo;s Guide, Fifth Edition<\/em>. SAS Institute Inc. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/documentation.sas.com\">https:\/\/documentation.sas.com<\/a><\/p>\n<p>SAS Institute Inc. (2022). <em>Base SAS 9.4 Procedures Guide, Seventh Edition<\/em>. SAS Institute Inc.<\/p>\n<p>U.S. Food and Drug Administration. (2019). <em>Providing regulatory submissions in electronic format: Standardized study data<\/em>. Center for Drug Evaluation and Research (CDER).<\/p>\n<p>Venable, P. R. (2017). <em>Exchanging data between SAS and Microsoft Excel: Beyond the basics of PROC IMPORT and PROC EXPORT<\/em>. Proceedings of the SAS Global Forum 2017 Conference, Orlando, FL.<\/p>\n<p>Zender, A. S. (2018). <em>Demystifying the ODS destination for Excel: How to create presentation-ready workbooks without Microsoft Office<\/em>. Proceedings of the Western Users of SAS Software Conference, Sacramento, CA.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Guide acad\u00e9mique complet pour exporter des jeux de donn\u00e9es SAS vers Microsoft Excel \u00e0 l&rsquo;aide de PROC EXPORT et ODS, avec exemples de code d\u00e9taill\u00e9s.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[1881,10206],"tags":[1952,4702,10208,10207,235],"class_list":["post-9288","psych_stat","type-psych_stat","status-publish","hentry","category-methodologie-de-la-recherche","category-statistiques-et-biostatistique","tag-excel","tag-gestion-de-donnees","tag-ods-excel","tag-proc-export","tag-sas"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/9288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat"}],"about":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/types\/psych_stat"}],"author":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9288"}],"version-history":[{"count":1,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/9288\/revisions"}],"predecessor-version":[{"id":9293,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/9288\/revisions\/9293"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}