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