スクリプトガイド > JMPの拡張 > SAS Cloud分析サービス > CASテーブルをデータテーブルに変換する
公開日: 04/01/2021

CASテーブルをデータテーブルに変換する

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」)を持つ文字テーブル変数を作成します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).