CAS Table to Data Table()は、JSONデータをデータテーブルに変換します。アクションの結果のJSON要素は、「_ctb」を含みます。これは、CASテーブルの形式であることを示すものです。JSONの結果は、CAS Table To Data Table()で使用することができます。JMPがJSONからJMPデータテーブルを作成します。
結果が2つ以上ある場合は、次の例の最後にあるようなGet Resultsを使った処理が必要になります。この例は、データを書き出し、アクションを実行し、データを複数のデータテーブルに保存する方法を示しています。
cas = Current CAS Connection();
If( IsEmpty(cas),
cas = CAS Connect( URL( url ), Username( username ), Prompt( "IfNeeded" ));
);
dt = Open( "$SAMPLE_DATA/Animals.jmp" );
cas << Export Data( dt, "CASUSER.Animals" );
json = "\[
{
"table": {
"name": "Animals",
"caslib": "CASUSER"
},
"class": [
"種別",
"個体",
"季節"
],
"model": {
"depVar": "miles",
"effects": [
{
"vars": [
"種別",
"季節"
],
"interaction": "BAR"
}
],
"printsol": true,
"cl": false,
"dfmethod": "RESIDUAL"
},
"random": [
{
"depVars": "miles",
"effects": [
{
"vars": [
"個体"
],
"nest": [
"種別"
]
}
]
}
],
"method": "REML"
}
]\";
action = New CAS Action(
Action( "mixed.mixed" ),
JSON( json )
);
rc = cas << Submit( action );
if(rc,
results = action << Get Results;
keys = results << Get Keys();
For(i = 1, i <= N Items( keys ), i++,
dt = CAS Table To Data Table( results[keys[i]] );
);
);
cas << Disconnect();
Get Resultsを使うと、CASアクションの結果を調べることができます。結果は、JSL連想配列として取得されます。Get JSONでは、生のJSONをJSL文字列として取得できます。
JSONデータの形式は、https://developer.sas.com/apis/cas/rest/current/apidoc.htmlで解説されています。「ResultsTable」を検索してください。
CAS Table to Data Table()では、JSON文字列を指定し、データテーブルをinvisibleまたはprivateで開き、テーブル名と列名を制御します。
json = "jsonstring";
CAS Table to Data Table( json, <Invisible(Boolean)|Private(Boolean)>, <"Use Labels For Var Names">);
• invisibleはデータテーブルを非表示にしますが、JMPホームウィンドウには名前が表示されます。privateはデータテーブルを完全に非表示にします。ユーザがデータテーブルとやり取りする必要がない場合は、privateを指定してください。
• "Use Labels for Var Names"は、テーブル名と列名にSASデータセットのラベルと列のラベルを使用することを指定します。なお、各列における列プロパティの「SAS名」と「SASラベル」に、SASでの変数名とラベルが保存されます。
メモ: 「_ctb」のJSONにある(「_ctb」と同等の)CAS ResultsTable属性値も、テーブル変数として設定されます。「CREATETIME」属性は、ロケールに従った形式のタイムスタンプ(たとえば「04/03/2019 4:38:05 PM」)を文字列として持つテーブル変数を作成します。