Utilisation des blocs de programme R

Le mot clé R de la commande BEGIN PROGRAM identifie un bloc d'instructions de programmation R, qui sont traitées par R.

La spécification de base est BEGIN PROGRAM R suivie d'une ou de plusieurs instructions R, suivie de END PROGRAM.

Exemple

DATA LIST FREE /var1.
BEGIN DATA
1
END DATA.
DATASET NAME File1.
BEGIN PROGRAM R.
File1N <- spssdata.GetCaseCount()
END PROGRAM.
DATA LIST FREE /var1.
BEGIN DATA
1
2
END DATA.
DATASET NAME File2. 
BEGIN PROGRAM R.
File2N <- spssdata.GetCaseCount()
{if (File2N > File1N)
  message <- "File2 has more cases than File1."
else if (File1N > File2N)
  message <- "File1 has more cases than File2."
else
  message <- "Both files have the same number of cases."
}
cat(message)
END PROGRAM.
  • Le premier bloc de programme définit une variable de programmation, File1N, avec une valeur définie sur le nombre d'observations dans le jeu de données actif.
  • Le premier bloc de programme est suivi d'une syntaxe de commande qui crée et nomme un nouveau jeu de données actif. Bien que vous ne puissiez pas exécuter la syntaxe de commande IBM® SPSS® Statistics à partir d'un bloc de programme R, vous pouvez avoir plusieurs blocs de programme R séparés par une syntaxe de commande qui effectue les actions nécessaires. Les valeurs des variables R affectées dans un bloc de programme donné sont disponibles dans les blocs de programme suivants.
  • Le deuxième bloc de programme définit une variable de programmation, File2N, avec une valeur définie sur le nombre d'observations dans le jeu de données IBM SPSS Statistics nommé File2. La valeur de File1N est conservée dans le premier bloc de programme, de sorte que les deux comptages d'observations peuvent être comparés dans le deuxième bloc de programme.
  • La fonction R cat est utilisée pour afficher la valeur de la variable R message. La sortie écrite dans la sortie standard de R (par exemple, avec la fonction cat ou print ) est dirigée vers un élément de journal dans le visualiseur IBM SPSS Statistics .

Remarque: Pour réduire l'utilisation de la mémoire R, vous pouvez supprimer des objets volumineux tels que des jeux de données IBM SPSS Statistics à la fin de votre bloc de programme R (par exemple, rm(data)).

Affichage de la sortie de R

Pour IBM SPSS Statistics version 18 et les versions ultérieures, et par défaut, les sorties de la console et les graphiques de R sont redirigés vers IBM SPSS Statistics Viewer. Cela inclut la sortie implicite des fonctions R qui seraient générées lors de l'exécution de ces fonctions à partir d'une console R (par exemple, les coefficients du modèle et diverses statistiques affichés par la fonction glm ou la valeur moyenne affichée par la fonction mean ). Vous pouvez basculer l'affichage de la sortie de R à l'aide de la fonction spsspkg.SetOutput .

Accès à l'aide R dans IBM SPSS Statistics

Vous pouvez accéder à l'aide des fonctions R depuis IBM SPSS Statistics. Incluez simplement un appel à la fonction R help dans un bloc BEGIN PROGRAM R-END PROGRAM et exécutez le bloc. Par exemple :

BEGIN PROGRAM R.
help(paste)
END PROGRAM.

pour obtenir de l'aide sur la fonction R paste .

Vous pouvez accéder à la page d'aide HTML principale de R avec:

BEGIN PROGRAM R.
help.start()
END PROGRAM.

Débogage

Pour IBM SPSS Statistics version 18 et ultérieure, vous pouvez utiliser les fonctions R browser, debuget undebug dans les blocs BEGIN PROGRAM R-END PROGRAM , ainsi que dans le code d'implémentation pour les commandes d'extension implémentées dans R. Cela vous permet d'utiliser certains des mêmes outils de débogage disponibles dans une console R. En bref, la fonction browser interrompt l'exécution et affiche une fenêtre de console qui vous permet d'inspecter des objets dans l'environnement associé, tels que des valeurs de variable et des expressions. La fonction debug est utilisée pour marquer une fonction R spécifique (par exemple, une fonction R qui implémente une commande d'extension) pour le débogage. Lorsque la fonction est appelée, une fenêtre de console s'affiche et vous pouvez parcourir la fonction une instruction à la fois, en inspectant les valeurs de variable et les expressions.

  • Les résultats affichés dans une fenêtre de console associée à l'utilisation de la fonction browser ou debug sont affichés dans le visualiseur IBM SPSS Statistics après l'exécution du bloc de programme ou de la commande d'extension contenant l'appel de fonction.

    Remarque: Lorsqu'un appel à une fonction qui génère une sortie explicite, telle que la fonction R print , précède un appel à browser ou à debug, la sortie résultante est affichée dans le visualiseur IBM SPSS Statistics après l'exécution de la commande de bloc de programme ou d'extension contenant l'appel de fonction. Vous pouvez afficher cette sortie dans la fenêtre de la console R associée à browser ou debug en vous assurant que l'appel à browser ou à debug précède la fonction qui génère la sortie, puis en exécutant l'appel à la fonction de sortie.

  • L'utilisation des fonctions debug et browser n'est pas prise en charge en mode réparti.
  • Sous Windows, vous devrez peut-être définir l'environnement local du système pour qu'il corresponde à la langue de sortie SPSS Statistics afin d'afficher correctement les caractères étendus dans une fenêtre de console R, même en mode Unicode.

Pour plus d'informations sur l'utilisation des fonctions debug et browser , voir l'aide R de ces fonctions.

Fonctions R qui lisent à partir de l'entrée standard

Certaines fonctions R prennent des données d'entrée à partir d'un fichier externe ou de la connexion d'entrée standard stdin. Par exemple, par défaut, la fonction scan lit à partir de stdin mais peut également lire à partir d'un fichier externe spécifié par l'argument file . Lorsque vous utilisez des fonctions R dans des blocs BEGIN PROGRAM R-END PROGRAM , la lecture de données à partir de stdin n'est pas prise en charge, car R est imbriqué dans IBM SPSS Statistics. Pour de telles fonctions, vous devrez lire les données d'un fichier externe. Par exemple :

BEGIN PROGRAM R.
data <- scan(file="/Rdata.txt")
END PROGRAM.

Versions

Plusieurs versions d' IBM SPSS Statistics -Integration Plug-in for R peuvent être utilisées sur la même machine, chacune étant associée à une version majeure d' IBM SPSS Statistics, telle que 23 ou Subscription. Les blocs BEGIN PROGRAM R-END PROGRAM chargent automatiquement la version correcte du package d'intégration R pour IBM SPSS Statistics. Il n'est donc pas nécessaire d'utiliser la commande R library pour charger le package.

Règles de syntaxe

  • Dans un bloc de programme, seules les instructions reconnues par le langage de programmation spécifié sont autorisées.
  • Dans un bloc de programme, chaque ligne ne doit pas dépasser 251 octets.
  • Avec IBM SPSS Statistics Batch Facility (disponible uniquement avec IBM SPSS Statistics Server), utilisez le commutateur -i lorsque vous soumettez des fichiers de commandes contenant des blocs de programmes. Toute la syntaxe de commande (et non pas que les blocs de programme) du fichier doit respecter les règles de syntaxe interactives.

Opérations

  • Dans un bloc BEGIN PROGRAM R , les fonctions R quit() et q() mettent fin à la session IBM SPSS Statistics .
  • Les variables R spécifiées dans un bloc de programme donné sont conservées dans les blocs de programme suivants.

Limites

  • Les variables créées à l'aide d'un programme dans un bloc de programme ne peuvent pas être utilisées en dehors de blocs de programme.
  • Les blocs de programme ne peuvent pas se trouver dans des définitions de macro DEFINE-!ENDDEFINE.
  • Les blocs de programme peuvent se trouver dans des fichiers de syntaxe de commande exécutés à l'aide de la commande INSERT, avec le paramètre SYNTAX=INTERACTIVE par défaut.
  • Les blocs de programme ne peuvent pas se trouver dans des fichiers de syntaxe de commande exécutés à l'aide de la commande INCLUDE.