表14.3に、R Send( )関数でJMPからRに変数を送った場合に、JMPのデータタイプ(データ型)が、Rにおいて、どのような型に変換されるかを示します。リストの場合は、リスト内の要素ごとにデータタイプをチェックして、変換します。なお、入れ子になっているリストも、サポートされています。
Rデータタイプ |
JMPデータタイプ |
---|---|
実数(double) |
数値 |
文字列 |
文字列 |
実数の行列 |
行列 |
リスト |
リスト |
データフレーム |
データテーブル |
整数 |
行の属性 |
日付と時間 |
日付時間 |
時間差 |
時間の長さ |
対のリスト |
連想配列 |
R Init();
X = 1;
R Send( X );
S = "Report Title";
R Send( S );
M = [1 2 3, 4 5 6, 7 8 9];
R Send( M );
R Submit( "
X
S
M
" );
R Term();
表14.4に、R Get( )関数でRからJMPに変数を取得した場合に、Rのデータタイプ(データ型)が、JMPにおいて、どのような型に変換されるかを示します。リストの場合は、リスト内の要素ごとにデータタイプをチェックして、変換します。なお、入れ子になっているリストも、サポートされています。
Rデータタイプ |
JMPデータタイプ |
---|---|
実数(double) |
数値 |
論理(ブール値) |
数値 ( 0 | 1 ) |
文字列 |
文字列 |
整数 |
数値 |
日付と時間 |
日付時間 |
時間差 |
時間の長さ |
因子(factor) |
文字列のリスト、または、数値の行列 |
データフレーム |
データテーブル |
リスト |
リストや行列を含んだリスト |
行列 |
行列 |
数値ベクトル |
行列 |
文字列ベクトル |
文字列のリスト |
グラフ |
ピクチャー |
Time Series(時系列) |
行列 |
対のリスト |
連想配列 |
R Send()関数によって、JMPの変数をRに送った場合、Rオブジェクトの名前には、JMPの変数と同じ名前が付けられます。たとえば、dtというJMP変数をRに送ると、dtという名前のRオブジェクトが作成されます。コロンおよび2重コロンのスコープ演算子(:および::)は、Rオブジェクト名に使用できないため、次のように変換されます。
• 1重コロンのスコープ演算子はピリオド(.)に置き換えられます。
たとえば、nsref:dtをRに送ると、nsref.dtという名前のRオブジェクトが作成されます。
• 2重コロンのスコープ演算子(グローバル変数を指定)は無視されます。
たとえば、::dtをRに送ると、dtという名前のRオブジェクトが作成されます。
R Send()のR Name()オプションには、有効なRオブジェクト名を引用符付き文字列で指定します。Rに送られたJMPオブジェクトは、指定の名前のRオブジェクトになります。例:
R Send( jmp_var_name, R Name( "r_var_name") );
R Submit( "print(r_var_name)" )
次の例は、Here名前空間内に変数x、グローバル名前空間内に変数y、そしてどの名前空間にも明示的に参照されない変数zを作成します。変数zは、Names Default To Here(1)がオンでない限り、デフォルトでグローバルに設定されます。これらの変数は、その後、Rに渡されます。
Here:x = 1;
::y = 2;
z = 3;
R Init(); // R接続を開始する
/* Here変数をRに送る
Here:xはRオブジェクトのHere.xとなる */
R Send( Here:x );
/* JMPログの出力では、元のJMP変数の参照であるHere:xが使用される */
R Submit( "print(Here.x)" );
R Send( ::y ); // ::yはRオブジェクトのyとなる
R Submit( "print(y)" );
// Rオブジェクトに別の名前をつけるには、R Name()オプションを使用する
R Send( Here:x, R Name( "localx" ) );
/* R Send()コマンドをR Nameオプションとともに使用すれば、JMP変数"Here:x"に相当するRオブジェクト"localx"が作成できる。この場合も、ログには元のJMP変数名が表示される。*/
R Submit( "print(localx)" );
R Send( z ); // zはRオブジェクトzとなる
R Submit( "print(z)" );