公開日: 09/19/2023

レポートの作成例

ここでは、レポートを作成するJSLスクリプトを最初から順に紹介します。

1. データテーブルを開きます。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

2. 次に「二変量」プラットフォームを起動し、そのプラットフォーム参照を「biv」に割り当てます。

/* プラットフォームの参照 */
biv = dt << Bivariate( Y( :"体重(ポンド)"n ), X( :"身長(インチ)"n ));

3. 「二変量」プラットフォームで何ができるのかを調べるには、[ヘルプ]>[スクリプトの索引]を選択し、オブジェクトのリストから「Bivariate」を検索します。いくつかのオプションを実行します。

biv << Fit Spline( 1000000 ) << Fit Mean;
 

// 次数4、オレンジ色の曲線

biv << Fit Polynomial( 4, {Line Color( RGBColor( 1, 0.5, 0 ) )});
biv << ( Curve[1] << Line Color( red ) ); // 最初の曲線は赤色

4. レポートレイヤーをrbivに割り当てます。

rbiv = biv << Report;

5. フレームボックスを見やすいサイズにし、グラフを表示するために先頭までスクロールします。

rbiv[Frame Box( 1 )] << Size Window( 500, 700 );
biv << Scroll Window( {0, 0} );

6. レポートの処理を始めます。まず、参照を作成し、次に、その参照でできることを調べる必要があります。

Show Properties( rbiv ); // レポートのプロパティを表示する

メモ: ログに、レポートに使用できるメッセージがリストされます。該当のレポートで利用できるメッセージは、「スクリプトの索引」だけではなく、Show Properties()を実行することでも知ることができます。

Close [ブール]

GetOpen [アクション] [スクリプトの場合のみ]

SetOpen [ブール] [スクリプトの場合のみ]

...

7. アウトラインの「平均のあてはめ」ノードを開きます。

rbiv["平均のあてはめ"] << Close( 0 );

Close()は、ブール関数(真または偽)で、0を渡すとアウトラインは閉じません。

8. 実際に、いくつかの結果を選択してみます(個別の結果を見るには、各行を単独で実行)。

rbiv["あてはめの要約"] << Select;
rbiv["パラメータ推定値"] << Select;
rbiv["分散分析"] << Select;
rbiv["多項式のあてはめ 次数=4", "パラメータ ?", Column Box( "推定値" )] << Select; 
// アウトラインツリーの下位層にある要素を選択
rbiv << Deselect;

9. 4次多項式のパラメータ推定値レポートにおいて、推定値列の表示形式を変更してみます。

pe = rbiv["多項式のあてはめ 次数=4", "パラメータ ?"];
ests = pe[Number Col Box( "推定値" )];
ests << Set Format( 12, 6 );

Set Formatの第1引数では、全体の列幅を表示する文字数で指定します。第2引数では小数点以下の桁数を指定します。

図11.8 レポートに変更を適用 

レポートに変更を適用

メモ: テーブルから単一の数値を取得することもできます。たとえば、3次の項における推定値を取得するには、上記のスクリプトに次のようなスクリプトを追加します。

terms = rbiv[Outline Box( "パラメータ推定値" )][String Col Box( "項" )]; 
// 項の列を見つける
ests = rbiv[Outline Box( "パラメータ推定値" )][Number Col Box( "推定値" )]; 
// 推定値の列を見つける
estimate = .; // 3次の項がない場合にそなえて初期値を設定
Try(
    For( i = 1, i < 10, i++,
 

// get(i)は、Tryによって処理されるテーブルの末尾で停止する

        If( Contains( terms << Get( i ), "^3" ),
			 estimate = ests << Get( i );
            Break();
        )
    )
);
Show( estimate );

0.070394822744608

10. For()ループを使って、目的の項の行数を数えます。For()の2番目の引数が条件であることを思い出してください。条件のテストが真である限り、ループは続きます。この場合は、「の列が"^3"でなく、10番目の行に到達していない」という条件がテストされています。探している文字列が見つかった時点で(Break()により)ループは終了し、iの値は一致した行の番号になっています。これを利用して、For()による反復処理の後、推定値列に対するGetメッセージの引数としてiを用いています。

11. また、ボックスから値を行列で取得し、その値を使って、次の計算を行ったり、データテーブルを作成したりすることもできます。次の2つの例では、数値列ボックスからデータテーブルを作成しています。

// 平方和列の値を行列として取得する

myVector = rbiv[Table Box( 5 )][Number Col Box( "平方和" )] <<  Get as Matrix;
 

/* Big Class.jmpに「平方和」という新しい列を作成する

列にmyVectorの値を挿入する */

dt << New Column( "平方和", Values( myVector ) );
 

// 5番目テーブルボックスから新しいデータテーブルを作成する

rbiv[Table Box( 5 )] << Make Data Table( "分散分析表" );

12. ここで、軸のスケールを調整します。

rbiv[Axis Box( 1 )] << Min( 70 ) << Max( 170 ); // Y軸を設定する
rbiv[Axis Box( 2 )] << Min( 50 ) << Max( 70 );  // X軸を設定する

13. レポートの冒頭にあるグラフをコピーします。グラフが含まれているピクチャーボックスを選択する必要があります。グラフだけを選択すると、軸が欠落してしまいます。

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