スクリプトガイド > JMPの拡張 > SAS Cloud Analytic Servicesとの通信 > CASテーブルをデータテーブルに変換する
公開日: 11/25/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": "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」)を文字列として持つテーブル変数を作成します。

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