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":"距離(マイル)",
"効果":[
{
"vars":[
"種別",
"季節"
],
"interaction":"BAR"
}
],
"printsol": true,
"cl": false,
"dfmethod":"RESIDUAL"
},
"random":[
{
"depVars":"距離(マイル)",
"効果":[
{
"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( jason, <Invisible(Boolean)|Private(Boolean)>, <"Use Labels For Var Names">);
• invisibleはデータテーブルを非表示にしますが、JMPホームウィンドウには表示したままです。
privateはデータテーブルを完全に非表示にします。ユーザがデータテーブルとやり取りする必要がない場合は、privateを指定してください。
• "Use Labels for Var Names"は、テーブル名と列名にSASデータセットのラベルと列のラベルを使用することを示します。該当する列プロパティの「SAS名」と「SASラベル」が使用されます。
注: 「_ctb」のJSONにある(「_ctb」と同等の)CAS ResultsTable属性値も、テーブル変数として設定されます。「CREATETIME」属性は、ロケールに従った形式のタイムスタンプ(たとえば「04/03/2019 4:38:05 PM」)を持つ文字テーブル変数を作成します。