J'ai beaucoup travaillé avec l'interface JMP vers R lors de la création de mon complément JMP, le Générateur de compléments personnalisés JMP vers R . Donc, si vous voulez apprendre à démarrer avec la connexion JMP à R à l'aide de JSL, vous êtes au bon endroit !
Je suis un défenseur de l'apprentissage à travers des exemples plutôt que de la mémorisation des API, alors commençons par l'exemple des données aller-retour via R et retour à JMP . Vous devrez envoyer des données de JMP à R, effectuer des opérations dans R et renvoyer les résultats à JMP. L'épine dorsale de votre script devrait donc ressembler à ceci :
//initializes the R interfaces
R Init();
//send data to R
R Send(/*name of JMP object you want to send to R, i.e. data table, list, matrix, string, or numeric*/);
//or
R Send File(/*path to the file you want to send here, as a string*/);
//perform calculations in R
R Submit(/*code you want to execute in R here, as a string*/);
//or
R Submit File(/*path to the file that contains the R code you want to execute*/);
//return data from R
varName = R Get(/*name of object you want to return from R*/);
//terminates the R interfaces
R Term();
Ou peut-être aimeriez-vous tout faire en une seule ligne, ce qui équivaut à R Envoyer() pour vos noms de variables un par un, R Soumettre() pour votre code, et R Obtenir() pour les variables R une par une :
R Execute(/*list of R input var names*/, /*list of R output var names*/, "\[your R code to submit]\");
Une question courante que j'ai vue est, 'quelle est la différence entre R Envoyer() et R Soumettre() ?'
R Envoyer() envoie une structure de données à R — les cinq options sont table de données, liste, matrice, chaîne et numérique.
R Soumettre() , en revanche, soumet le code R sous forme de chaîne à R que vous souhaitez exécuter. Vous pouvez écrire le code sous forme de chaîne s'il ne contient pas de guillemets ou l'échapper en utilisant "\[ code ]\" .
Une fois que vous avez cette colonne vertébrale, une question demeure : comment obtenez-vous la sortie R dans un format que vous pouvez utiliser ?
La réponse : Cela dépend.
Si vous souhaitez ouvrir une table de données que vous avez récupérée à partir de R, vous pouvez utiliser la commande suivante :
R Get(/*name of R variable that contains data table*/) << new data view;
Cela ouvre la table de données dans JMP.
Si vous souhaitez ajouter une colonne dans une table de données JMP existante, vous pouvez utiliser :
varName = R Get(/*name of R variable that contains list with values*/);
dt << New Column(/*name of new column*/, /*column data type, e.g. Character, Numeric*/, Values(varName));
Si vous voulez afficher le plus récemment graphique R produit, vous pouvez utiliser:
R Get Graphics(/*either png or jpg*/);
Pour afficher cette image dans une fenêtre JMP, utilisez :
New Window("My Plot", R Get Graphics(/*either png or jpg*/));
Il existe également d'autres options de sortie, dont certaines sont couvertes dans ce Maîtriser le Webcast JMP .
Une remarque très importante à faire : lors de l'exécution d'opérations telles que R Obtenir() , le nom de la variable R doit être le nom sous forme d'expression JSL (c'est-à-dire pas une chaîne). R Get("var") , qui est incorrect, n'est pas équivalent à R Obtenir(var) , qui est correct.
Enfin, un problème que j'ai rencontré lors de l'utilisation de l'interface JMP vers R était que je me fiais à l'entrée de l'utilisateur pour déterminer les paramètres de ces fonctions. Dans ce cas, j'utiliserais Éval(Parser()) pour exécuter ces commandes d'interface JMP vers R. Par exemple:
Eval(Parse(varName || " = R Get(" || userInputValue || ");"));
ou
Eval(Parse("dt << New Column(userInputForColumnName, " || userInputForColumnType || ", Values(" || stringNameOfListVariable || "));"));
D'autres fonctions JMP vers R au-delà de celles-ci ( R Connect() , Contrôle R() , etc.) se trouve dans l'Index des scripts.
Bonne chance! J'aimerais entendre vos pensées sur le JMP à l'interface R ci-dessous dans les commentaires.