WPS Proc R guide utilisateur et référence
Transcription
WPS Proc R guide utilisateur et référence
Proc R : guide utilisateur et référence Version 3.2 WPS Proc R guide utilisateur et référence “Programmation dans les langages SAS et R” Version: 3.2.3 Copyright © 2002-2016 World Programming Limited www.worldprogramming.com Proc R : guide utilisateur et référence Version 3.2 Table des matières Introduction...............................................................................................4 Démarrage rapide.....................................................................................6 Installation et configuration....................................................................9 Configuration de la variable d'environnement R_HOME............................................................... 9 Configuration de la variable d'environnement R_HOME via la déclaration globale options ( tout système d'exploitation )...................................................................... 10 Configuration de la variable d'environnement R_HOME via une variable d'environnement de démarrage WPS Server ( tout système d'exploitation )............... 11 Configuration de la variable d'environnement R_HOME en utilisant un script UNIX shell de profilage...................................................................................................................12 Notes spécifiques aux plates-formes........................................................................................... 12 Windows.............................................................................................................................12 UNIX - télécharger R et le compiler à partir de la source.................................................13 Mac OS X..........................................................................................................................13 Fonctionnement de base...................................................................... 15 Tests d'installation et configuration de WPS et R....................................................................... 15 Transmission des données entre WPS et R............................................................................... 16 Utilisation de la déclaration EXPORT............................................................................... 16 Utilisation de la déclaration IMPORT................................................................................ 17 Utilisation des représentations graphiques R.............................................................................. 17 Utilisation des programmes supplémentaires R.......................................................................... 19 Référence................................................................................................ 21 Comment lire EBNF (Forme étendue de Backus-Naur) et les schémas de syntaxe................... 21 Procédure R................................................................................................................................. 24 PROC R.............................................................................................................................24 ASSIGN..............................................................................................................................25 EXECUTE.......................................................................................................................... 27 EXPORT............................................................................................................................ 27 IMPORT............................................................................................................................. 29 LOAD................................................................................................................................. 32 SAVE..................................................................................................................................32 SUBMIT..............................................................................................................................33 Lectures complémentaires....................................................................36 2 Proc R : guide utilisateur et référence Version 3.2 Notices légales....................................................................................... 37 3 Proc R : guide utilisateur et référence Version 3.2 Introduction PROC R permet aux programmes rédigés dans le langage SAS à incorporer du code écrit dans le langage R. Ce document fournit l'information nécessaire pour configurer et utiliser la procedure R (PROC R) depuis WPS. Motivation Le langage R est un langage populaire et il occupe un place significative dans la communauté d'analyse de données pour les raisons suivantes : • Il s'est solidement implantée au sein de l'écosystème open source. • Un grand nombre de fonctionnalités statistiques sont disponible dans le langage. • Il pourra sans doute offrir certaines fonctionnalités statistiques non disponibles dans WPS. • De nombreuses personnes sont déjà de compétents programmeurs en R et souhaitent se servir de leurs compétences. Regrouper les langages R et SAS crée une solution où l'ensemble est supérieur à la somme de ses parties. Cette interopérabilité permet à la plus grande partie du traitement et de l'analyse des données d'être rédigée dans le langage SAS, qui est doté d'une haute performance et d'une puissance industrielle, tout en exploitant les nouvelles caractéristiques spécialisées de statistiques que l'on retrouve dans l'univers R. Une vue d'ensemble Nous recommandons que les programmes soient codés dans le langage SAS car l'environnement R nécessite la présence de specialistes en statistique : 4 Proc R : guide utilisateur et référence Version 3.2 Programme Logiciel Logiciel SAS WPS R Processus Processus Sortie Sortie Syntax e SAS Transfert à R Renvoi à WPS PROC R Syntax e R Syntax e SAS Sortie Traitée par WPS Sortie, Journaux , Données, etc., depuis WPS et R Il serait simple de transférer les données de manière rapide et efficace entre WPS et l'environnement R en utilisant la syntaxe PROC R. Une fois que les données sont transférées, la syntaxe régulière R est utilisée pour rédiger un programme R de la meme façon qu'il le serait dans un environnement nonWPS. Une fois qu'un programme R est terminé, les données peuvent être facilement transférées vers l'environnement WPS pour poursuivre le traitement. Ce guide et référence de l'utilisateur Pour démarrer le plus rapidement possible, commencez par la session Démarrage rapide. Pour des informations de fond sur la configuration, consultez Installation et configuration. Pour comprendre comment effectuer des opérations informatiques typiques, reportez-vous à Fonctionnement de base. Pour obtenir des informations détaillées sur la syntaxe et la sémantique de l'intégration de WPS avec R, étudiez la section de Référence vers la fin. 5 Proc R : guide utilisateur et référence Version 3.2 Démarrage rapide Pour démarrer rapidement, vous devriez avoir l'expérience à la fois dans le langage SAS et le langage R. Avant de vous lancer, vérifiez que : • La version 3.1 de WPS ou plus récente soit installée sur votre système, et en plus la version 2.15.x ou la version 3.x de R. Ce tutoriel bref suppose que vous disposiez d'une installation Windows de WPS, mais les mises en oeuvre sur d'autres systèmes d'exploitation sont semblables. • Votre installation de R comprenne la bibliothèque partagée API. Celle-ci est inclue dans les installations par défaut sur les systèmes d'exploitations Windows et Mac X, mais elle n'est pas inclue par défaut sur d'autres plates-formes comme Linux. Pour obtenir de plus amples renseignements, reportez-vous à la section Installation et configuration. Avertissement : La procédure R ne fonctionnera pas correctement si votre installation R ne comporte pas la bibliothèque partagée API. • La génération et gestion automatique des ODS HTML soit activée dans WPS Workbench. Vous pouvez configurer celle-ci via Fenêtre ➤ Préférences ➤ WPS ➤ Options des résultats. L'exemple du programme suivant : • Indique l'emplacement de l'installation R. • Crée un ensemble de données WPS appelé source. • Transmet l'ensemble de données source à l'environnement R. ‣ Imprime l'ensemble de données depuis le langage R. ‣ Effectue quelques simples traitements et représentations graphiques des données sources depuis le langage R. ‣ Crée un ensemble de données simple appelé x dans le langage R. • Dans l'environnement WPS, extrait l'ensemble de données x depuis l'environnement R. • Imprime l'ensemble de données x en utilisant le langage SAS 1. Lancez WPS et créez un nouveau programme ( également connu sous le nom script ). 2. Copiez et collez le code suivant dans le fichier et vous assurer que le chemin de la première ligne pointe vers votre installation locale R, par exemple : options SET=R_HOME "C:\Program Files\R\R-2.15.3"; data source; do x=1 to 10; y=ranuni(-1); output; end; PROC R; export data=source; submit; str(source) print(source) 6 Proc R : guide utilisateur et référence Version 3.2 model <- lm(source$y ~ source$x) print(model) par(mfrow=c(2, 2)) plot(model) x <- (1:10) endsubmit; import R=x; run; proc print data=x; run; 3. Sauvez le programme et exécutez-le en cliquant sur l'icône de la barre d'outils Exécuter 4. Examinez le journal et la sortie ODS générés. L'écho de la source standard R est acheminé vers le fichier journal WPS : La sortie HTML du serveur local comprend les sorties des déclarations print et plot : 7 . Proc R : guide utilisateur et référence Version 3.2 Vos environnements WPS et R sont maintenant integrés, et vous pouvez désormais examiner tout l'éventail des possibilités offertes en ayant un accès simultané aux deux langages. Le concept clé est la possibilité de placer le code R entre les déclarations submit et endsubmit, afin d'employer d'autres déclarations de PROC R pour gérer le transfert de données entre les deux environnements. 8 Proc R : guide utilisateur et référence Version 3.2 Installation et configuration Cette section porte sur l'installation et la configuration de l'environnement WPS / R. Le logiciel nécessaire La procédure R est livrée avec la version WPS 3.1 ou plus récente, et elle peut être utilisée avec n'importe laquelle des deux versions WPS ( 32 bits (x 86) ou 64 bits (x 64) ) . Vous n'avez pas besoin d'installer des modules supplémentaires, et il n'y a aucune condition spéciale de licence puisque la procédure R fait partie intégrante de la licence du logiciel de base WPS. Pourtant, le logiciel WPS n'est pas livré avec une copie de R, et pour utiliser la procédure R, vous aurez besoin d'une installation de R sur votre ordinateur. Remarque : Au moment de la rédaction du présent document, les nouvelles versions de R utilisées sont 2.15.x et 3.x. Le logiciel WPS peut être utilisé avec les deux versions. Reportez-vous aux Notes spécifiques aux plates-formes pour apprendre comment installer R sur les plates-formes différentes. Configuration de la variable d'environnement R_HOME Afin de pouvoir trouver l'emplacement de la version installée de R, WPS exige que la variable d'environnement R_HOME soit configurée. La seule exception est le cas où la plate-forme est Windows et l'emplacement d'installation par défaut pour R est utilisé ; WPS peut alors récupérer les informations à partir du registre Windows ; cependant, s'il existe plusieurs installations de R, l'emplacement par défaut peut être remplacé en utilisant cette variable. Les façons dont vous configurez la variable d'environnement R_HOME dépendent de votre scénario particulière d'installation et d'utilisation : Configuration de la variable d'environnement R_HOME via la déclaration globale options ( tout système d'exploitation ) Configuration de la variable d'environnement R_HOME via une variable d'environnement de démarrage WPS Server ( tout système d'exploitation ) Configurer la variable d'environnement Configuration R_HOME en de la variable utilisant un tant d'environnement que variable R_HOME en au niveau du utilisant un script système sur UNIX shell de votre système profilage d'exploitation* Oui Oui Oui Oui Serveur autonome Oui Oui Oui Oui Scénario d'installation et d'utilisation Poste de travail autonome 9 Proc R : guide utilisateur et référence Version 3.2 Configuration de la variable d'environnement R_HOME via une variable d'environnement de démarrage WPS Server ( tout système d'exploitation ) Configurer la variable d'environnement Configuration R_HOME en de la variable utilisant un tant d'environnement que variable R_HOME en au niveau du utilisant un script système sur UNIX shell de votre système profilage d'exploitation* Connexion au Oui serveur via bureau à distance Oui Oui Oui Connexion WPS Link entre poste de travail et serveur Non Applicable Oui Oui Scénario d'installation et d'utilisation Configuration de la variable d'environnement R_HOME via la déclaration globale options ( tout système d'exploitation ) Oui * Veuillez vous référer aux documentations de votre système d'exploitation pour découvrir comment configurer une variable au niveau du système. Remarque : Lors de configurer la variable d'environnement R_HOME en externe sur le système d'exploitation requis, il est toujours possible de vérifier la variable en utilisant un programme rédigé dans le langage SAS qui contient le code suivant : %let EnvVar = %sysget( R_HOME ); %put "R_HOME is set to &EnvVar"; Configuration de la variable d'environnement R_HOME via la déclaration globale options ( tout système d'exploitation ) La façon la plus simple de configurer la variable d'environnement R_HOME est d'utiliser la déclaration globale options à l'intérieur d'un programme WPS. 1. Invoquez le code suivant avant d'invoquer la procédure R, en remplaçant le chemin par celui de votre installation R : options SET=R_HOME "C:\Program Files\R\R-2.15.3"; Celle-ci configure la variable d'environnement R_HOME pour ce qui reste de la session WPS. Cette méthode a l'avantage de vous permettre à utiliser plusieurs versions de R dans une seule session WPS : options SET=R_HOME "C:\Program Files\R\R-2.15.3"; proc r; submit; R.version endsubmit; 10 Proc R : guide utilisateur et référence Version 3.2 options SET=R_HOME "D:\Program Files\R\R-3.0.3"; proc r; submit; R.version endsubmit; 2. La sortie HTML de ce programme ressemble à ce qui suit : _ platform arch os system status major minor year month day svn rev language version.string nickname x86_64-w64-mingw32 x86_64 mingw32 x86_64, mingw32 2 150.3 2013 03 01 62090 R R version 2.15.3 (2013-03-01) Security Blanket et _ platform arch os system status major minor year month day svn rev language version.string nickname x86_64-w64-mingw32 x86_64 mingw32 x86_64, mingw32 3 0.3 2014 03 06 6512 R R version 3.0.3 (2014-03-06) Warm Puppy Configuration de la variable d'environnement R_HOME via une variable d'environnement de démarrage WPS Server ( tout système d'exploitation ) Une autre méthode de la spécification de l'emplacement de l'installation R consiste à configurer la variable d'environnement R_HOME en utilisant l'option Démarrage du serveur WPS où sont installés WPS et R. 1. Vous assurer d'être connecté au poste de travail ou au serveur physique où sont installés WPS et R. 11 Proc R : guide utilisateur et référence Version 3.2 2. Lancez WPS Workbench. 3. Cliquez avec la touche droite sur le serveur WPS dans l'onglet Explorateur de serveurs WPS et sélectionnez Propriétés. La boîte de dialogue Propriétés de Local Server s'affiche. 4. Vous assurer que l'élément Variables d'environnement soit sélectionné sur le côté gauche de cette boîte de dialogue, sous Démarrage. 5. Cliquez sur le bouton Nouveau..., ajoutez la nouvelle variable d'environnement, puis cliquez OK sur la boîte de dialogue Propriétés. 6. Vous êtes invité à redémarrer le serveur afin d'appliquer les modifications. Dans quelques secondes, le serveur sera redémarré et l'onglet Explorateur de serveurs WPS indiquera qu'un ensemble de Bibliothèques et Filerefs y est associé une nouvelle fois. WPS utilisera la nouvelle variable d'environnement lorsqu'il a besoin de repérer l'installation locale R. Configuration de la variable d'environnement R_HOME en utilisant un script UNIX shell de profilage Une dernière option pour les plates-formes UNIX permet de configurer la valeur de R_HOME dans un script shell de profilage. Par exemple, la variable d'environnement pourrait être configurée dans le fichier ~/.bashrc d'un utilisateur. Remarque : Étant donné la façon dont les programmes sont lancés sur Mac OS X, cette option n'a aucun effet sur l'environnement de WPS Workbench lors de son lancement, et elle ne foncionnera donc sur cette plate-forme. Notes spécifiques aux plates-formes Windows La distribution binaire standard Windows devrait être installée à partir du site Web du projet R. Le progiciel qui peut être téléchargé à partir de l'adresse http://www.r-project.org/ comprend toutes les deux versions de R - 32 bits (x 86) et 64 bits (x 64) - et le même emballage fonctionne donc pour toutes les deux versions du logiciel WPS ( 32 bits (x 86) et 64 bits (x 64) ). Par défaut, l'installation R enregistre l'emplacement dans le registre Windows, qui est l'endroit dans lequel WPS cherche pour identifier la version actuellement installée. Celle-ci sera la version de R installée la plus récemment, et aucune configuration spéciale de WPS n'est requise pour que WPS la retrouve. Cependant, si vous avez plusieurs installations R et vous souhaitez que WPS utilise une installation particulière, il est toujours possible de configurer la variable d'environnement R_HOME tel que décrit dans Configuration de la variable d'environnement R_HOME via la déclaration globale options ( tout système d'exploitation ) ou Configuration de la variable d'environnement R_HOME via une variable d'environnement de démarrage WPS Server ( tout système d'exploitation ). 12 Proc R : guide utilisateur et référence Version 3.2 UNIX - télécharger R et le compiler à partir de la source La bibliothèque partagée requise n'est pas comprise par défaut dans la distribution binaire R pour UNIX, et il n'est actuellement pas possible de télécharger une distribution binaire apte qui est préconstruite à partir du site Web du projet R. Sur les plates-formes UNIX, il est nécessaire de compiler R de la source pour qu'il comprenne la bibliothèque partagée nécessaire pour assurer la communication avec WPS. Dans la description suivante du processus de téléchargement et d'installation, vous devez remplacer le nom R-3.2.1 par la version actuelle d'archive dont vous disposez. Remarque : Vous devez vous disposer d'un ensemble minimum de bibliothèques préinstallées avant de pouvoir compliler R du code source. Ce sont l'équivalent des build essentials en plus un JDK sur Ubuntu. En cas de doute, consultez la documentation R ou visitez le site Web R à partir de l'adresse http://www.r-project.org/. 1. Télécharger le code source R. Il est fort recommandé d'utiliser le site Web http://cran.ma.imperial.ac.uk et suivre le lien de téléchargement à la mise à jour la plus récente de R dans le panneau Source Code for all Platforms. 2. Décompacter le code source. tar -xzf R-3.2.1.tar.gz Ceci génère un nouveau répertoire nommé R-3.2.1. 3. Modifier le répertoire vers le nouveau répertoire et configurer le processus de compilation. ./configure --enable-R-shlib --prefix=$HOME/R Ceci aura pour effet de déployer R dans un sous-répertoire de votre répertoire d'origine, ce qui signifie que vous n'aurez pas besoin des privilèges super-utilisateur afin de l'installer. 4. Compiler et lier le logiciel R. make 5. Installer le logiciel R. make install De plus amples instructions sur l'installation de R à partir de la source sont disponsibles dans la documentation R. L'aspect clé est que l'étape ./configure doit être exécutée en utilisant l'option --enable-R-shlib pour que WPS puisse démarrer l'installation R correctement. Mac OS X La distribution binaire standard de R devrait être installée à partir du site Web du projet R. 13 Proc R : guide utilisateur et référence Version 3.2 La valeur de R_HOME doit être configurée pour que WPS puisse repérer l'installation R. La configuration correcte est : /Library/Frameworks/R.framework/Resources. Ceci utilisera la version par défaut de l'installation R . Remarque : Étant donné la façon dont les programmes sont lancés sur Mac OS X, il n'est pas possible de configurer R_HOME en utilisant un script shell de profilage. Pour utiliser une certaine version de R, vous pouvez modifier la configuration conformément à cette version, par exemple : /Library/Frameworks/R.framework/Versions/3.0/Resources 14 Proc R : guide utilisateur et référence Version 3.2 Fonctionnement de base Tests d'installation et configuration de WPS et R Pour tester l'installation et la configuration de WPS et R, vous pouvez créer et exécuter le programme court ci-dessous. Ce programme peut aussi servir d'introduction à la syntaxe PROC R. 1. Créez un nouveau fichier de programme, et collez et enregistrez le code suivant : proc r; submit; x <- (1:10) print(x) endsubmit; run; 2. Exécutez le programme en cliquant sur l'icône de la barre d'outils Exécuter . À la fin de l'exécution du programme, le journal du serveur local devrait contenir les éléments affichés dans l'exemple suivant : 4 proc r; 5 submit; 6 x <- (1:10) 7 print(x) 8 endsubmit; NOTE: Using R version 3.0.3 (2014-03-06) from D:\Program Files\R\R-3.0.3 NOTE: Submitting statements to R: > > x <- (1:10) print(x) NOTE: Processing of R statements complete 9 run; NOTE: Procedure r step took : real time : 0.406 cpu time : 0.015 Le logiciel WPS imprime le numéro et l'emplacement de la version de R utilisée. Cela se produit pour chaque invocation de PROC R. L'écho de la source standard de R est également inclus dans le journal d'exécution de WPS, et les sorties HTML pour le serveur local contiennent les sorties de la déclaration print(x) : [1] 1 2 3 4 5 6 7 8 9 10 15 Proc R : guide utilisateur et référence Version 3.2 Transmission des données entre WPS et R Les déclarations EXPORT et IMPORT vous permettent de transmettre des données entre WPS et R, dans les deux sens. Utilisation de la déclaration EXPORT La déclaration EXPORT de la procédure R est utilisée pour transmettre les données depuis l'environnement WPS à l'environnement R. Ceci se produit généralement lorsque certaines données qui ont été générées dans des étapes antérieures en utilisant le langage SAS doivent être mises à la disposition du cadre R. 1. Créez un nouveau fichier de programme, collez le code suivant, et sauvez-le : data source; do x=1 to 10; y=ranuni(-1); output; end; proc r; export data=source; submit; str(source) print(source) endsubmit; run; 2. Lancez le programme en cliquant sur l'icône Exécuter de la barre d'outils, et examinez la sortie HTML. Par défaut, la déclaration EXPORT crée une trame de données R qui a le même nom que l'ensemble de données WPS. Cette trame de données contient aussi les mêmes colonnes que l'ensemble de données original WPS. 'data.frame': 10 obs. of 2 variables: 1 2 3 4 5 6 7 8 9 10 $ y: num 0.67611 0.15623 0.00499 0.76839 0.71394 ... 1 2 3 4 5 6 7 8 9 $ x: num x y 1 2 3 4 5 6 7 8 9 0.676114940 0.156228246 0.004988594 0.768386004 0.713939278 0.004663629 0.714222821 0.453278570 0.613537647 16 Proc R : guide utilisateur et référence Version 3.2 10 10 0.072553599 Utilisation de la déclaration IMPORT La déclaration IMPORT de la procédure R est utilisée pour extraire les données depuis l'environnement R pour les remettre dans l'environnement WPS. La déclaration IMPORT accepte les vecteurs, matrices et trames de données R et les convertit en ensembles de données WPS appropriés. 1. Créez un nouveau fichier de programme, collez le code suivant, et sauvez-le : proc r; submit; x <- (1:10) endsubmit; import R=x; proc print data=x; run; 2. Lancez le programme en cliquant sur l'icône Exécuter de la barre d'outils, et examinez la sortie HTML. La sortie HTML provenant de la déclaration proc print est affichée ci-dessous. Remarque : Le vecteur R nommé x a été converti en un ensemble de données nommé x dans le langage SAS, ensemble qui contient une seule colonne, aussi nommée x. Obs 1 2 3 4 5 6 7 8 9 10 x 1 2 3 4 5 6 7 8 9 10 Utilisation des représentations graphiques R Lorsque vous lancez une session R, WPS configure R de sorte que toutes les représentations graphiques générées par le dispositif graphique par défaut sont saisies et incluses dans la sortie ODS HTML standard de la session WPS. Le programme suivant étend l'exemple précédent pour inclure des analyses et représentations graphiques de régression linéaire simple. 17 Proc R : guide utilisateur et référence Version 3.2 1. Créez un nouveau fichier de programme, collez le code suivant, et ensuite enregistrez-le : data source; do x=1 to 10; y=ranuni(-1); output; end; PROC R; export data=source; submit; model <- lm(source$y ~ source$x) print(model) par(mfrow=c(2, 2)) plot(model) endsubmit; run; 2. Lancez le programme en cliquant sur l'icône Exécuter de la barre d'outils, et examinez la sortie HTML. La sortie comporte les résultats R imprimés avec une seule représentation graphique générée au sein de la session R et dirigée vers la sortie WPS. Call: lm(formula = source$y ~ source$x) Coefficients: (Intercept) source$x 0.5344 0.0241 18 Proc R : guide utilisateur et référence Version 3.2 Utilisation des programmes supplémentaires R Pour utiliser des programmes supplémentaires qui ne figurent pas dans l'installation standard R, nous recommandons que l'environnement de la ligne de commande interactive R soit utilisé pour effectuer l'installation et vérifier le fonctionnement de base de ces programmes, avant d'entreprendre toute tentative de les utiliser dans la procédure R de WPS. Remarque : Une session R lancée par WPS hérite la liste des variables d'environnement depuis le processus de WPS. Lorsqu'elle est exécutée à partir du WPS Workbench sur votre ordinateur, le processus du serveur local WPS hérite à son tour sa liste de variables d'environnement depuis le processus du Workbench. Si un logiciel tiers est installé pour l'utilisation avec R qui 19 Proc R : guide utilisateur et référence Version 3.2 exige, par exemple, des saisies supplémentaires dans la variable d'environnement PATH, le WPS Workbench doit être redémarré pour repérer les changements. Redémarrer simplement le serveur local dans le Workbench n'est pas suffisant pour que les changements de variable d'environnement prennent effet. 20 Proc R : guide utilisateur et référence Version 3.2 Référence EBNF (Forme étendue de Backus-Naur) et les schémas de syntaxe sont des notations qui aident à comprendre la syntaxe des langages de programmation. Elles sont utilisées dans ce guide pour décrire la syntaxe du langage. Comment lire EBNF (Forme étendue de Backus-Naur) et les schémas de syntaxe EBNF est une notation textuelle, tandis que les schémas de syntaxe sont des représentations graphiques. Tous les deux font partie des informations de référence qui accompagnent les structures significatives de langage telles que les procédures, les déclarations, et ainsi de suite. Dans tous les cas, les représentations textuelles EBNF sont équivalentes aux représentations graphiques des schémas de syntaxe : il s'agit simplement de deux façons de décrire les mêmes concepts syntactiques. La description de chaque élément de langage débute avec sa représentation EBNF, suivie par le schéma de syntaxe correspondant. La saisie de texte Le texte qui doit être saisi exactement tel qu'affiché est présenté dans une police à chasse fixe dans les deux formes (EBNF et schéma de syntaxe) : OUTPUT ; OUTPUT ; Cet exemple décrit un fragment de syntaxe dans lequel le mot-clé OUTPUT est suivi d'un point-virgule : ;. La version EBNF de ce fragment est simplement composée des caractères : OUTPUT;, et le schéma de syntaxe est : . La casse du texte n'est généralement pas importante, mais la convention ici est d'utiliser des majuscules pour les mots-clés. Espaces réservés Les espaces réservés qui devraient être remplacés par un texte pertinent et dépendant du contexte sont restitués dans une police minuscule, en italique : OUTPUT data-set-name ; OUTPUT data- set- nam e ; 21 Proc R : guide utilisateur et référence Version 3.2 Ici, le mot-clé OUTPUT doit être exprimé de façon littérale, mais data-set-name doit être remplacé par quelque chose d'approprié au programme - dans ce cas, c'est le nom de l'ensemble de données auquel on doit ajouter une observation. Éléments facultatifs Lorsque les éléments sont facultatifs, ils sont affichés sur une branche audessous de la ligne principale : OUTPUT [ data-set-name ] ; ; OUTPUT data- set- nam e Remarque : Dans EBNF, les aspects facultatifs sont désignés par des crochets : [ ], tandis que, dans le schéma de syntaxe, ils sont représentés par une autre voie uninterrompue traversant le schéma. Répétition Les éléments qui peuvent être répétés sont représentés par une boucle de retour qui spécifie de manière facultative le séparateur qui doit être placé entre plusieurs instances : OUTPUT { data-set-name } ; OUTPUT data- set- nam e ; Ci-dessus, le mot-clé, OUTPUT doit être introduit littéralement, et il doit être suivi d'un ou plusieurs répétitions de data-set-name. Dans ce cas-ci, nul autre séparateur qu'un espace n'est requis. Dans EBNF, une telle répétition est dénotée par des accolades : { }. Si un séparateur est requis, il est indiqué sur la boucle de retour du schéma de syntaxe : function-name ( { <,> argument } ) ; , function- nam e ( argum ent ) ; Remarque : Dans EBNF, le séparateur de répétition – le cas échéant – doit être mis entre chevrons : <,>. Ils permettent de le spécifier avec précision. Choix Lorsqu'il faut choisir un des paramètres proposés, les choix sont schématisés de la manière suivante : GETNAMES [ YES | NO ] ; GETNAMES YES ; NO 22 Proc R : guide utilisateur et référence Version 3.2 Dans EBNF, les choix sont représentés par une symbole logique | - pour représenter OR - entre les différentes options. Dans l'exemple ci-dessus, le mot-clé GETNAMES doit être saisi littéralement, et ensuite le mot-clé YES ou NO. Fragments Lorsque la syntaxe est trop compliquée pour tenir dans un seul schéma de syntaxe, cet schéma peut être divisé en fragments : PROC PRINT { option } PROC option PRINT option [ DATA = data-set-name | LABEL ] DATA = data- set- nam e LABEL Ci-dessus, la syntaxe est divisée en fragments en EBNF et dans le schéma de syntaxe. Le premier fragment indique que PROC PRINT doit être suivi d'une ou plusieurs options, chacune d'entre elles devant respecter la syntaxe affichée dans le deuxième schéma. Pour aider la lecture d'EBNF Le tableau ci-dessous résume les conventions EBNF utilisées dans cette référence : Convention Description [] Éléments facultatifs {} Éléments répétés <> Séparateurs qui entourent les éléments répétés | OR dans un groupe d'options entouré de [ ]. Par exemple : • [A|B]– sélectionnez soit A, soit B • [A|B|]– sélectionnez soit A, soit B, soit sélection nulle (c'est-à-dire, omettre totalement le groupe) "" Commentaire – par exemple, un titre de groupe caractères à chasse fixe Mots-clés et séparateurs italiques variables 23 Proc R : guide utilisateur et référence Version 3.2 Convention Description caractères gras Éléments affichés dans leurs propres schémas, tels que des fragments caractères soulignés Sélection par défaut Remarque : Les parenthèses ( ) ne sont pas utilisées comme séparateurs de notation EBNF. Par conséquent, les parenthèses appartiennent toujours à la définition de syntaxe. En revanche, les crochets, chevrons et accolades, [ ], < > et { } ne font pas partie de la syntaxe du langage SAS, et peuvent être interprétés comme séparateurs de notation EBNF sans prêter à confusion. Procédure R La procédure R est invoquée par l'instruction PROC R. Elle permet l'exécution du code des programmes rédigés en langage R. Instructions prises en charge • PROC R • ASSIGN • EXECUTE • EXPORT • IMPORT • LOAD • SAVE • SUBMIT PROC R PROC R [ { option } ] ; PROC R ; option option [ GMTOFFSET = "+/-HH:MM" | TIMESASCHRON | LIB = default-library | KEEP | TERMINATE | TERM ] GMTOFFSET = "+ / - HH:MM" TIMESASCHRON LIB = default- library KEEP TERMINATE TERM 24 Proc R : guide utilisateur et référence Version 3.2 GMTOFFSET="+/-HH:MM" Configure le décalage par rapport à GMT qu'il faut appliquer lors du transfert de valeurs de date et d'heure entre WPS et R à l'aide de l'instruction ASSIGN, EXPORT ou IMPORT. Les valeurs de date et d'heure dans WPS ne tiennent pas compte d'un fuseau horaire, tandis que les valeurs de date et d'heure dans R sont représentées en UTC (Temps Universel Coordonné), et sont donc associées à un fuseau horaire. TIMESASCHRON Cette option permet de contrôler si les valeurs d'heure sont représentées dans R en utilisant la classe chron. Par défaut, les valeurs d'heure sont représentées dans R en utilisant un compte de secondes à partir de minuit, mais il est possible d'utiliser le programme chron. Cependant, ce programme ne fait pas partie de l'installation standard de R. L'option affecte les instructions ASSIGN et EXPORT. LIB=default-library Spécifie la bibliothèque par défaut utilisée par les instructions EXPORT, IMPORT, LOAD et SAVE. Les descriptions de ces instructions fournissent plus de détails sur l'impact de cette option. KEEP Spécifie que l'application R doit être maintenue active à la fin de l'étape de procédure, pour qu'elle puisse être utilisée par des invocations PROC R ultérieures. Le comportement par défaut consiste à arrêter l'application R à la fin de PROC R, mais ce comportement peut être modifié à l'aide de l'option système RKEEP. TERMINATE Spécifie que l'application R doit être arrêtée à la fin de l'étape de procédure, ce qui est le comportement par défaut. Ce comportement peut être modifié à l'aide de l'option système RKEEP. TERM TERM est un alias de TERMINATE. Exemple d'invocation de PROC R proc r; submit; R.version endsubmit; run; ASSIGN L'instruction ASSIGN peut être utilisée pour attribuer une valeur à une valeur vectorielle R. 25 Proc R : guide utilisateur et référence Version 3.2 ASSIGN r-object-name = [ value | ( { <,> value } ) ] ; ASSIGN r- object- nam e value , = ( value ; ) value [ int-literal | float-literal | date-literal | datetime-literal | time-literal | string-literal ] int- literal float- literal date- literal datetim e- literal tim e- literal string- literal Remarque : Toutes les valeurs sur le côté droit de l'attribution doivent être du même type. Par exemple, elles doivent être toutes des nombres entiers, ou toutes des chaînes de caractères. Le type de vecteur R créé dépend des types de valeurs fournies : Type de valeurs fournies Type de vecteur R créé Nombres entiers Nombre entier. Virgule flottante Nombre réel. Date Nombre réel avec la classe Date. DateHeure Nombre réel avec la classe POSIXct, ajustée en fonction de l'option GMTOFFSET fournie à l'instruction PROC R. Heure Nombre réel avec la classe times. Chaîne Chaîne. En règle générale, cette instruction sert à transmettre les paramètres dans un programme R. Les valeurs du côté droit de l'attribution seraient générées généralement en utilisant l'expansion des variables macro, ou l'exécution des macros. Avec cette instruction, la nécessité d'effectuer une expansion des macros dans le bloc SUBMIT lui-même est fortement réduite. Le nom de l'objet R est spécifié en tant qu'identificateur normal dans le langage WPS. Les majuscules et minuscules sont préservées lors de la création de l'objet R. Si nécessaire, un nom littéral peut être utilisé ("r.object.name"n, par exemple) pour créer des objets R portant des noms qui ne seraient sinon pas valides en langage SAS. Exemple d'attribution d'une valeur à un objet R %let parm=15; 26 Proc R : guide utilisateur et référence Version 3.2 proc r; assign parm=&parm; submit; x<-sample(1:3, parm, replace=TRUE) print(x); endsubmit; run; EXECUTE L'instruction EXECUTE de la procédure R permet d'exécuter un programme R stocké dans un fichier. EXECUTE "filename" ; EXECUTE "filenam e" ; Remarque : L'instruction EXECUTE constitue une alternative à l'instruction SUBMIT. Elle permet au code R d'être placé dans un fichier distinct. Cela est utile, car le même code de programme peut également être exécuté directement dans un environnement interactif R. Le cas échéant, tous les noms de chemin d'accès relatifs sont résolus en fonction du répertoire courant du processus WPS. Exemple d'exécution d'un programme R stocké dans un fichier Contenu du fichier source model.r : model <- lm(source$y ~ source$x) print(model) par(mfrow=c(2, 2)) plot(model) Exemple d'invocation de la procédure R : data source; do x=1 to 10; y=ranuni(-1); output; end; PROC R; export data=source; execute "model.r"; run; EXPORT L'instruction EXECUTE de la procédure R crée un tableau de données R à partir d'un ensemble de données WPS. 27 Proc R : guide utilisateur et référence Version 3.2 EXPORT { option } ; option EXPORT ; option [ DATA = wps-data-set | [ R | FRAME ] = r-object-name ] DATA = wps- data- set R = r- object- nam e FRAME DATA Spécifie le nom de l'ensemble de données à exporter, ainsi que toutes les options requises pour l'ensemble de données. Cette option est obligatoire. R ou FRAME Spécifie éventuellement le nom à donner à l'objet dans l'environnement R. S'il est omis, le nom de l'objet R est extrait du nom du membre de l'ensemble de données. Les options d'ensemble de données peuvent être spécifiées de manière normale sur l'ensemble de données en entrée. Il peut être utile d'appliquer une clause WHERE ou une liste DROP à l'ensemble de données avant de l'exporter vers R. Remarque : L'application de la clause WHERE, ou l'export de l'ensemble de données depuis une bibliothèque ou une vue séquentielle (autrement dit, lorsque le nombre d'observations de l'ensemble de données n'est pas connu) exige des ressources supplémentaires, puisqu'il faut d'abord faire un spoule de l'ensemble de données afin de calculer le nombre exact d'observations avant de créer le tableau de données R. Un ensemble de données WPS peut contenir deux types de données : numérique et caractère. En outre, une colonne numérique peut être associée à un format permettant d'offrir plus d'informations sur le type. Le type de vecteur R créé est comme suit : Type de variable WPS Type de vecteur R créé Caractère Chaîne de caractères normale. Variable numérique avec un format de date Vecteur réel R avec la classe Date. Variable numérique avec un format de date-heure Un vecteur réel R sera créé avec la classe POSIXct. Les valeurs de cette classe représentent un nombre de secondes depuis le 1er janvier 1970 (Temps Universel Coordonné (UTC)). Les valeurs sont ajustées en fonction de l'option GMTOFFSET transférée à l'invocation PROC R afin de tenir compte du fait que les valeurs date-heure dans le langage SAS sont exprimées en heure locale, 28 Proc R : guide utilisateur et référence Version 3.2 Type de variable WPS Type de vecteur R créé alors que les valeurs de la classe POSIXct en R doivent être en format UTC. Variable numérique avec un format d'heure Il existe deux options en fonction de si l'option TIMESASCHRON est spécifiée par l'invocation PROC R. Par défaut, un vecteur réel R est crée et aucune classe n'est attribuée au vecteur. Toutefois, si l'option TIMESASCHRON est spécifiée, le vecteur sera attribué la classe times. Le programme R chron ( qui fournit la classe times ) ne fait pas partie de l'installation standard R mais fournit des utilitaires pour le traitement des valeurs en ce qui concerne l'heure du jour. Autres variables numériques Un vecteur réel R normal est créé et aucune classe spéciale n'y est attribuée. Lorsque vous transférez les valeurs numériques depuis WPS vers R, l'instruction EXPORT interprète les valeurs spéciales manquantes .I et .M et crée les valeurs R Inf et -Inf en conséquence. Toute autre valeur manquante est transmise à R comme la valeur NaN. Exemple d'exportation de données depuis WPS vers R Cet exemple crée un ensemble de données contenant deux colonnes numériques, et les exporte vers R. data source; do x=1 to 10; y=ranuni(-1); output; end; proc r; export data=source; submit; str(source) endsubmit; run; Le tableau de données qui en résulte : 'data.frame': 10 obs. of 2 variables: $ x: num 1 2 3 4 5 6 7 8 9 10 $ y: num 0.371 0.924 0.59 0.434 0.962 ... IMPORT L'instruction IMPORT de la procédure R crée un ensemble de données WPS à partir d'un objet R. 29 Proc R : guide utilisateur et référence Version 3.2 IMPORT { option } ; option IMPORT ; option [ DATA = wps-data-set | [ R | FRAME ] = r-object-name ] DATA = wps- data- set R = r- object- nam e FRAME DATA Spécifie éventuellement l'emplacement où doit être enregistré l'ensemble de données. Cela peut inclure les options d'ensemble de données. En cas d'omission, l'ensemble de données sera enregistré dans la bibliothèque par défaut (soit WORK, soit la bibliothèque nommée dans l'option LIB= située de l'invocation PROC R). R ou FRAME Spécifie le nom de l'objet R à importer. Celui-ci doit se présenter sous forme d'un identifiant, et non pas d'une chaîne littérale entre guillemets. Un nom littéral peut être utilisé ici pour spécifier un nom qui n'est normalement pas viable en tant qu'identifiant dans le langage SAS. Cette option est obligatoire. Règles de conversion IMPORT N'importe quel objet peut être importé s'il peut être inséré dans un ensemble de données à l'aide de la fonction R as.data.frame. Si l'objet R spécifié ne peut pas être inséré dans un tableau de données, une erreur se produit. WPS peut importer les colonnes ayant les types R suivants : logique, nombre entier, nombre réel, et caractère. En outre, il peut importer des facteurs. Les colonnes de type logique, nombre entier ou nombre réel sont converties en variables numériques dans l'ensemble de données WPS. Les colonnes de type caractère et les facteurs sont convertis en variables de type chaîne de caractères. Les notes suivantes fournissent plus de détails sur ces règles de conversion. Valeurs logiques Les valeurs de vecteurs de type logique sont converties comme suit : Valeur R Valeur WPS TRUE 1 FALSE 0 NA . 30 Proc R : guide utilisateur et référence Version 3.2 Nombres entiers La valeur spéciale NA dans R, qui est représentée dans R comme la valeur entière minimale (-2147483648) est convertie en valeur manquante de langage SAS. Valeurs réelles Il existe trois valeurs réelles numériques spéciales dans le langage R : NA, NaN, et Inf. Dans R, NA est utilisé pour représenter une valeur absente (non disponible), Inf indique l'infini (divisé par zéro, par exemple), et NaN représente un non-nombre (le résultat de 0/0 par exemple). Ces valeurs sont converties comme suit : Valeur R Valeur WPS NA . NaN . +Inf .I -Inf .M Valeurs de date Les colonnes de nombres entiers ou réels ayant la classe R Date sont traitées de manière spéciale. Le format DATE9 est attribué à la variable dans l'ensemble de données WPS, et, lors de leur importation, les valeurs sont ajustées pour tenir compte des différences entre les époques utilisées dans R et WPS. er Les valeurs de classe Date dans R sont représentées en tant que nombre de jours depuis le 1 janvier er 1970, tandis que, dans le langage SAS, l'époque commence au 1 janvier 1960. Date-heure Les colonnes de nombres réels de classe POSIXct sont aussi traitées de manière spéciale. Les er valeurs de cette classe dans R représentent le nombre de secondes depuis le 1 janvier 1970 TU à 00h00. Lorsque les colonnes de cette classe sont importées, les valeurs sont ajustées pour tenir compte des différences entre les époques utilisées dans SAS et R. Le format DATETIME19 est attribué à la variable dans l'ensemble de données WPS. Les valeurs sont également ajustées selon la valeur de l'option GMTOFFSET dans l'invocation PROC R pour tenir compte du fait que les valeurs R sont à l'heure UTC, tandis que, en langage SAS, les valeurs date-heure sont en heure locale. Heure Les colonnes de nombres réels de classe times sont aussi traitées de manière spéciale. Le format TIME8 est attribué à la variable dans l'ensemble de données WPS. Caractères WPS analyse les valeurs affichées dans la colonne de caractères pour trouver la valeur la plus longue, et utilise cette valeur pour définir la longueur de la colonne WPS. Les valeurs individuelles dans une colonne de caractères peuvent être Non Disponibles ( NA ) dans R, et sont alors converties en valeur de caractère manquant dans WPS (la valeur n'est composée que d'espaces vides). Il y n'a aucune différence donc entre les valeurs " " et NA lorsqu'elles sont importées dans WPS. 31 Proc R : guide utilisateur et référence Version 3.2 Facteur Un facteur dans R est une forme spéciale de colonne de nombre entier, où les valeurs de nombre entier sont des indices renvoyant à une liste de valeurs uniques stockée sous forme d'attribut dans la colonne (ce qu'on appelle « niveaux » en R). Lorsqu'elles sont importées dans WPS, elles sont converties en variables de caractères dans l'ensemble de données. La longueur de la plus longue des chaînes de caractères dans la liste des niveaux est utilisée pour définir la longueur de la variable dans WPS. Exemple d'importation de données depuis R vers WPS proc r; submit; x<-sample(1:3, 15, replace=TRUE) endsubmit; import r=x data=demo_import; run; proc print data=demo_import; run; LOAD Les instructions LOAD et SAVE permettent aux objets R d'être d'abord sérialisés et stockés de façon temporaire ou permanente dans une bibliothèque de données WPS, pour être désérialisés plus tard dans la même session WPS ou dans une session ultérieure. L'instruction LOAD désérialise un objet R qui a été enregistré auparavant avec l'instruction SAVE. CATALOG ou CAT ou C Indique l'emplacement dans lequel l'objet R est enregistré. Cette option est obligatoire. Si la bibliothèque n'est pas spécifiée dans l'option CATALOG, la bibliothèque par défaut est fournie par l'option LIB= de l'invocation PROC R ; sinon, la bibliothèque USER ou WORK est utilisée comme d'habitude. R ou FRAME Si le nom de l'objet R n'est pas conforme aux règles normales des identificateurs dans le langage SAS, ce nom peut être spécifié en utilisant la syntaxe des noms littéraux (par exemple, "r.object.name"n). La casse du nom est préservée lors de la création de l'objet R. Cette option est obligatoire. Exemple d'utilisation de l'instruction LOAD. proc r; load cat=catalog.entry r='target.object'n; run; SAVE Les instructions LOAD et SAVE permettent aux objets R d'être sérialisés et enregistrés de façon temporaire ou permanente dans la bibliothèque de données WPS, puis désérialisés dans la session 32 Proc R : guide utilisateur et référence Version 3.2 WPS en cours ou dans une session ultérieure. L'instruction SAVE sérialise un objet R et l'enregistre dans une entrée du catalogue. SAVE { option } ; option SAVE ; option [ [ CATALOG | CAT | C ] = [ libname . ] catalog . entry | [ R | FRAME ] = r-object-name | DESCRIPTION = "Catalog_entry_description" ] CATALOG catalog = libnam e CAT . entry . C R = r- object- nam e FRAME DESCRIPTION = "Catalog entry description" CATALOG ou CAT ou C Cette option, qui est obligatoire, indique l'emplacement où est enregistré l'objet R. Si la bibliothèque n'est pas spécifiée dans l'option CATALOG, la bibliothèque par défaut est fournie par l'option LIB= de l'invocation PROC R ; sinon, la bibliothèque USER ou WORK est utilisée comme d'habitude. R ou FRAME Cette option, qui est aussi obligatoire, spécifie le nom de l'objet R à enregistrer. Si ce nom n'est pas conforme aux règles normales des identificateurs dans le langage SAS, il peut être spécifié en utilisant la syntaxe des noms littéraux (par exemple, "r.object.name"n). Puisque R est un langage sensible à la casse, la casse du nom doit correspondre à celle de l'objet R. DESCRIPTION Fournit une chaîne descriptive qui est enregistrée dans l'entrée du catalogue. Cette description est affichée dans la sortie par l'instruction PROC CATALOG CONTENTS. Remarque : L'entrée de catalogue a le type ROBJECT. Exemple d'enregistrement d'un objet R dans un catalogue WPS proc r; save cat=catalog.entry r=’source.object’n; run; SUBMIT L'instruction SUBMIT de la procédure R permet d'exécuter du code en langage R inclus. 33 Proc R : guide utilisateur et référence Version 3.2 SUBMIT [ { symbol = "substitution-value" } ] ; { R-language-statement } ENDSUBMIT ; SUBMIT ; R- language- statem ent sym bol = "substitution- value" ENDSUBMIT ; Remarque : Aucune modification du code du programme R n'est nécessaire. Il est possible de copier et coller du code normal en langage de programmation R, de l'entourer des instructions SUBMIT et ENDSUBMIT, et de l'invoquer depuis l'intérieur de la procédure R. Le code source R doit démarrer sur une nouvelle ligne à la suite de l'instruction SUBMIT, et l'instruction ENDSUBMIT doit figurer au début de sa propre ligne. Plusieurs blocs SUBMIT peuvent figurer au sein d'une même invocation PROC R. Chaque bloc SUBMIT est exécuté à son tour. Les blocs SUBMIT peuvent être intercalés avec d'autres instructions selon les besoins. Traitement des macros La nature du langage R implique que les lignes entre les instructions SUBMIT et ENDSUBMIT soient copiées mot pour mot avant d'être transmises à l'environnement R. Le traitement des macros est suspendu entre les instructions SUBMIT et ENDSUBMIT. Il y a plusieurs raisons à cela : • La syntaxe du langage R intègre l'utilisation des caractères & et %. Si vous tentez de traiter le code source R en macro, il se peut que que la syntaxe R valable soit interprétée comme des invocations de macro en langage SAS ou en tant que références WPS à de variables macro. • Le langage R permet d'ajouter des commentaires en fin de ligne. Ceux-ci peuvent contenir, par example, des apostrophes non assorties, ce qui rend difficile la tokenisation de la syntaxe R par l'utilisation des règles ordinaires d'analyse du langage SAS (ce qui serait nécessaire pour permettre le traitement en macro du code source R). De plus, en raison du fonctionnement du processeur de macros fonctionne et de la manière dont il traite les lignes du code source, il n'est pas possible de générer un bloc SUBMIT en utilisant une macro. Autrement dit, un bloc SUBMIT ne peut pas apparaître dans une macro en langage SAS. Cependant, il est permis que le bloc SUBMIT figure dans un fichier identifié par une instruction %INCLUDE. Donc, s'il faut générer une invocation PROC R en utilisant le processeur de macros, il est nécessaire soit d'utiliser l'instruction EXECUTE, soit d'insérer le contenu du bloc SUBMIT dans un fichier distinct, qui sera alors identifié par une instruction %INCLUDE. Substitutions de texte À la place du processeur de macros, un mécanisme de substitution de texte simple est fourni. Avant d'être transmises à R, les lignes entre SUBMIT et ENDSUBMIT peuvent subir un nombre restreint de substitutions. Les substitutions sont fournies dans l'instruction SUBMIT. La syntaxe ressemble à celle des substitutions utilisées pour les variables macro normales. Cependant, il n'y a aucune nouvelle analyse, et seule la syntaxe des variables macro simples à niveau unique est autorisée. &symbol 34 Proc R : guide utilisateur et référence Version 3.2 &symbol. Même avec cette syntaxe simple, et en ne remplaçant que les symboles spécifiés dans l'instruction SUBMIT, il est possible que des substitutions inattendues surviennent. Pour éviter cela, il est recommandé de choisir des noms de symbole différents des noms d'objet R auxquels WPS fait référence dans le code R soumis. Le symbole d'esperluette (& et &&) est utilisé dans R comme l'opérateur logique and. Prenons, par exemple, le cas d'une instruction SUBMIT qui contient le code R suivant : a>b&c<d Si c est défini en tant que symbole de substitution, ceci aura pour résultat la substitution involontaire de c dans cette expression. Pour éviter cela, entourez l'esperluette d'espaces, et choisissez des noms de symboles de substitution moins susceptibles d'entrer en conflit avec les noms d'objets R. Il n'y a aucune syntaxe d'échappement, c'est-à-dire aucun moyen d'empêcher qu'un symbole soit substitué. Prenons, par exemple, le cas suivant : proc r; submit Goodbye="hello"; A <- "Hello&Goodbye" endsubmit; run; Il n'est pas possible d'empêcher la substitution dans ce cas, sauf en choisissant un autre nom pour le symbole. En particulier, l'esperluette (« & ») n'est pas un symbole spécial, puisqu'elle est utilisée en tant qu'opérateur logique dans R. Il est possible de générer des valeurs de substitution en utilisant les fonctionalités normales du processeur de macros, comme dans l'exemple suivant : proc r; submit Goodbye="hello"; A<-"&sym" endsubmit; run; Exemple de soumission de code R inclus proc r; submit; x <- (1:10) print(x) endsubmit; run; 35 Proc R : guide utilisateur et référence Version 3.2 Lectures complémentaires Un point de départ suggéré pour des lectures supplémentaires, y compris la syntaxe, la sémantique, et des informations sur les divers packages supplémentaires qui peuvent accroître l'utilité des caractéristiques fondamentales du langage R, c'est le site Web du projet R qui se trouve à http://www.rproject.org. 36 Proc R : guide utilisateur et référence Version 3.2 Notices légales Copyright © 2002-2016 World Programming Limited. Tous droits réservés. Les présentes informations sont confidentielles et soumises au droit d'auteur. La reproduction et la transmission de la présente publication, même partielles, par quelque procédé que ce soit, tant électronique que mécanique, y compris la photocopie, l'enregistrement ou tout système de stockage et récupération des données, sont formellement interdites. Marques WPS et World Programming sont des marques commerciales ou des marques déposées de World Programming Limited dans l'Union européenne et dans d'autres pays. Le sigle (r) ou ® indique une marque communautaire. SAS et tous les autres noms de produits et de services de SAS Institute Inc. sont des marques déposées ou des marques commerciales de SAS Institute Inc. aux Etats-Unis et dans d'autres pays. Le sigle ® indique que la marque est déposée aux Etats-Unis. Toutes les autres marques commerciales sont la propriété de leurs détenteurs respectifs. Notices générales World Programming Limited n'est associé d'aucune manière à SAS Institute Inc. WPS n'est pas le système SAS. L'expression « langage SAS » utilisée dans le présent document est utilisée comme un terme générique pour faire référence au langage de programmation SAS souvent appelé « langage SAS » ou simplement « SAS ». WPS inclut du logiciel développé par des tiers. Vous trouverez plus d'informations dans le fichier THANKS ou acknowledgements-fr.txt inclus dans l'installation de WPS. 37