Ich habe viel mit der JMP-zu-R-Schnittstelle gearbeitet, als ich mein JMP-Add-In erstellt habe JMP to R Custom Add-In Builder . Wenn Sie also erfahren möchten, wie Sie mit JSL mit der JMP-zu-R-Verbindung beginnen, sind Sie hier genau richtig!
Ich bin ein Befürworter des Lernens anhand von Beispielen, anstatt sich APIs zu merken. Beginnen wir also mit dem Beispiel des Roundtrippings von Daten durch R und zurück JMP . Sie müssen Daten von JMP an R senden, Operationen in R ausführen und die Ergebnisse an JMP zurücksenden. Das Rückgrat Ihres Skripts sollte also wie folgt aussehen:
//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();
Oder vielleicht möchten Sie alles in einer Zeile erledigen, was äquivalent ist zu R Senden() für Ihre Variablennamen nacheinander, R Submit() für Ihren Code und R Get() für R-Variablen einzeln:
R Execute(/*list of R input var names*/, /*list of R output var names*/, "\[your R code to submit]\");
Eine häufige Frage, die ich gesehen habe, ist: „Was ist der Unterschied zwischen?“ R Senden() Und R Submit() ?'
R Senden() sendet eine Datenstruktur an R – die fünf Optionen sind Datentabelle, Liste, Matrix, Zeichenfolge und numerisch.
R Submit() Im Gegensatz dazu wird R-Code als String an R gesendet, den Sie ausführen möchten. Sie können den Code als Zeichenfolge schreiben, wenn er keine Anführungszeichen enthält, oder ihn mit Escapezeichen versehen „\[Code ]\“ .
Sobald Sie dieses Rückgrat haben, bleibt eine Frage: Wie erhalten Sie die R-Ausgabe in einem Format, das Sie verwenden können?
Die Antwort: Es kommt darauf an.
Wenn Sie eine Datentabelle öffnen möchten, die Sie aus R abgerufen haben, können Sie den folgenden Befehl verwenden:
R Get(/*name of R variable that contains data table*/) << new data view;
Dadurch wird die Datentabelle in JMP geöffnet.
Wenn Sie eine Spalte in einer vorhandenen JMP-Datentabelle anhängen möchten, können Sie Folgendes verwenden:
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));
Wenn Sie das meiste anzeigen möchten in letzter Zeit Wenn Sie ein R-Diagramm erstellt haben, können Sie Folgendes verwenden:
R Get Graphics(/*either png or jpg*/);
Um dieses Bild in einem JMP-Fenster anzuzeigen, verwenden Sie:
New Window("My Plot", R Get Graphics(/*either png or jpg*/));
Es gibt auch andere Ausgabeoptionen, von denen einige hier behandelt werden JMP-Webcast meistern .
Ein sehr wichtiger Hinweis: Bei der Durchführung von Operationen wie z R Get() , der R-Variablenname muss der Name als JSL-Ausdruck (also kein String) sein. R Get(“var”) , was falsch ist, ist nicht gleichbedeutend mit R Get(var) , welches ist richtig.
Ein Problem, auf das ich schließlich bei der Verwendung der JMP-zu-R-Schnittstelle stieß, war, dass ich mich bei der Bestimmung der Parameter für diese Funktionen auf Benutzereingaben verließ. In diesem Fall würde ich verwenden Eval(Parse()) um diese JMP-zu-R-Schnittstellenbefehle auszuführen. Zum Beispiel:
Eval(Parse(varName || " = R Get(" || userInputValue || ");"));
oder
Eval(Parse("dt << New Column(userInputForColumnName, " || userInputForColumnType || ", Values(" || stringNameOfListVariable || "));"));
Andere darüber hinausgehende JMP-zu-R-Funktionen ( R Connect() , R-Steuerung() usw.) finden Sie im Scripting Index.
Viel Glück! Ich würde gerne Ihre Meinung dazu hören JMP zur R-Schnittstelle unten in den Kommentaren.