スクリプトガイド > プラットフォームのスクリプト > プラットフォームを非表示にする
公開日: 04/01/2021

プラットフォームを非表示にする

プラットフォームの分析結果を非表示にしたい場合があります。プラットフォームのウィンドウを表示せず、バックグラウンドでプラットフォームを実行したいという意味です。

スクリプトでシミュレーションやブートストラップ分析を実行する場合には、スクリプトによってプラットフォームが数百回または数千回呼び出されることがあります。しかし、各プラットフォームレポートから得ようとしている結果は1つか2つです。次の例は、シミュレーションを実行した後、結果のテーブルを作成し、それらを「一変量の分布」レポートに表示します。

dt = As Table( (0 :: 10)`, << Column Names( {"X"} ) ); // X変数を作成する
 
// 結果を再現できるように、乱数シードの初期値を設定する
Random Reset( 12345 );
dt << New Column( "Y",
	"Continuous",
	"Numeric",
	Set Formula( :X * 2 + 1 + Random Normal() )
);
 

// Y値の計算式には乱数の要素を含む

res = []; // 結果の行列を定義する(最初は空)
For( i = 1, i <= 100, i++, // シミュレーションの実行をループ
 

// 実行ごとに回帰直線をあてはめ、パラメータ推定値を保存する

	bv = dt << Bivariate( Y( :Y ), X( :X ), Fit Line( 1 ), Invisible );
	res |/= (Report( bv )["パラメータ推定値"][
 

// 結果を行列の下に追加していく

	Number Col Box( "推定値" )] << Get as Matrix)`;
 

// (非表示ではあるが)ウィンドウを閉じる

	bv << Close Window;
		dt:Y << Eval Formula; // 新しいY値を生成する
);

// 結果をテーブルに出力する

dtres = As Table( res, << Column Names( {"切片", "傾き"} ) );
 

// 「一変量の分布」レポートを作成する

dtres << Distribution( Y( :切片, :傾き ) );

スクリプトで中間的なステップとしての分析を実行するときに、その分析そのものをユーザに見せる必要がない場合は、invisibleオプションを使って非表示にしてください。このとき、レポート内の特定の結果だけをジャーナルまたはログに出力して、ユーザに見せることもできます。

次の例は、「一変量の分布」プラットフォームを非表示で実行し、累積確率プロットだけを新しいジャーナルに出力します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = dt << Distribution( Y( :Name("身長(インチ)") ), CDF Plot( 1 ), invisible );
Report( dist )["累積確率プロット"] << Journal;
dist << Close Window;

次の例は、非表示の「二変量」レポートからF値を抽出し、それをログに出力します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( x( :Name("身長(インチ)") ), y( :Name("体重(ポンド)") ), invisible );
biv << Fit Line;
r = biv << Report;
fratio = r[ColumnBox( "F値" )][1];
r << Close Window;
Show( fratio );

fratio = 1.15609545178219;

ヒント: 非表示のウィンドウによって使用されるリソースは手動で解放する必要があります。スクリプトの中で非表示のウィンドウの役目が終わったときには、そのウィンドウを閉じてください。

[テーブル]メニューにある[サブセット]、[並べ替え]、[列の積み重ね]などのオプションにinvisibleオプションを使用することもできます。次の例では、サブセットの処理を非表示にしています。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Where( :年齢 == 14 );
subDt = dt << Subset( invisible );
subDt << Bivariate( x( :Name("身長(インチ)") ), y( :Name("体重(ポンド)") ), Fit Line );

サブセットを使用せず、WHERE節を使用して同様の結果を得ることも可能です。

subDt << Bivariate( x( :Name("身長(インチ)") ),y( :Name("体重(ポンド)") ), Where( :年齢 == 14 ), Fit Line );
より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).