私のJMPアドインを作成するとき、私はJMPからRへのインターフェースで多くのことをしました。カスタムアドインビルダーからRへのJMP 。それで、もしあなたがJSLを使ってJMPからRへの接続を始める方法を学びたいのなら、あなたは正しい場所に来ました!
私はAPIを暗記するのではなく例を通して学ぶことを提唱しています、それではRを通してデータを往復する例から始めましょう。 JMP 。JMPからRにデータを送信し、Rで操作を実行し、結果をJMPに返す必要があります。スクリプトのバックボーンは、このようになります。
//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();
あるいは、すべてを1行にまとめて実行したい場合もあります。これは、 R送信() あなたの変数名は一つずつ、 R送信() あなたのコードのために、そして R Get() R変数に対して一つずつ:
R Execute(/*list of R input var names*/, /*list of R output var names*/, "\[your R code to submit]\");
私が見たよくある質問の1つは、次のとおりです。 R送信() そして R送信() ?
R送信() データ構造をRに送信します - 5つのオプションはデータテーブル、リスト、行列、文字列、および数値です。
R送信() それとは対照的に、実行したいRの文字列としてRコードを送信します。引用符が含まれていない場合はコードを文字列として記述するか、またはを使用してエスケープすることができます。 “ \ [code] \” 。
このバックボーンを取得したら、1つ質問が残ります。どのようにしてRの出力をあなたが使用できるフォーマットにするのですか?
答え:それは異なります。
Rから取得したデータテーブルを開くには、次のコマンドを使用します。
R Get(/*name of R variable that contains data table*/) << new data view;
これにより、JMPのデータテーブルが開きます。
既存のJMPデータテーブルに列を追加したい場合は、次のようにします。
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));
最も表示したい場合最近生成されたRプロットは、あなたが使用することができます:
R Get Graphics(/*either png or jpg*/);
この画像をJMPウィンドウで表示するには、次のようにします。
New Window("My Plot", R Get Graphics(/*either png or jpg*/));
他にも出力オプションがありますが、そのいくつかはこの中でカバーされています JMPウェブキャストをマスターする 。
1つの非常に重要な注意事項:のような操作を実行するとき R Get() R変数名はJSL式としての名前でなければなりません(つまり文字列ではありません)。 R Get(“ var”) これは誤りですが、と等価ではありません R取得(VAR) 、どちらが正しい。
最後に、JMPからRへのインタフェースを使用する際に私が遭遇した1つの問題は、私がこれらの機能のためのパラメータを決定するためにユーザー入力に頼っていたということでした。この場合、私は使用します評価(解析()) これらのJMPからRへのインターフェース・コマンドを実行します。例えば:
Eval(Parse(varName || " = R Get(" || userInputValue || ");"));
または
Eval(Parse("dt << New Column(userInputForColumnName, " || userInputForColumnType || ", Values(" || stringNameOfListVariable || "));"));
他のJMPからRへの機能はこれらを超えて( Rコネクト() 、 Rコントロール() など)は、Scripting Indexにあります。
頑張って!についてのあなたの考えを聞きたいです。 JMP コメントの下のRインタフェースへ。