外部ループとしてBY変数を使用したスクリプトプラットフォーム目的:外側のループとしてBY変数を使用して、3つのYの2変量プロットをスクリプト化します。
対話的には簡単です:YをXでフィットさせます。3つのY列を選択し、Xを選択します。私の場合は "Species"のBY変数を選択します。
結果の2変量プロットは、BY値ごとに、XプロットごとにY(1)、Y(2)、Y(3)でグループ化されます。
スクリプティング:プラットフォーム呼び出しごとにBYを挿入するだけでした。私の試みは:
Bivariate( Y( :Name( “Y(1)” ) ), X( :X ), By( :Species) ),
Bivariate( Y( :Name( “Y(2)” ) ), X( :X ), By( :Species) ),
Bivariate( Y( :Name( “Y(3)” ) ), X( :X ), By( :Species) ),
<<{Arrange in Rows( 1 )}
しかし、グループ化は、Speciesのすべての値に対してY(1)vs Xとなり、Speciesのすべての値に対してY(2)となります。
どうやってBY変数を外側のループにすることができますか?インタラクティブバージョンから作成されたスクリプトは一般的ではありません。つまり、BY変数の代わりに、WHERE(:Species == "rat")などを明示的に使用します。BY変数のオプションはデータセットごとに異なるため、WHEREを使用して明示的に宣言することはできません。
Re:外部ループとしてBY変数を使用したスクリプトプラットフォームあなたの解決をありがとう。対話的にこれを実行するときのいくつかの手順が非常に魅力的なので、BYを使用した同様に単純なスクリプトがあると確信していたので、FORループを試すことは避けました。 あなたのアプローチは確実にうまくいくでしょうし、カスタムグループタイトルを使えば、各グラフを手作業でフォーマット/サイズ変更しなくても、最終的なグラフをすべて1ステップでコピー/貼り付けすることができます。
Re:外部ループとしてBY変数を使用したスクリプトプラットフォームタスクを実行するには、上から下へBy()を使用し、下から上へWhere()を使用する方法が複数あります。
Where()を使用してボトムアップで多変量レポートを作成すると、より高い柔軟性が得られると思います。 下記はのために書かれたサンプルスクリプトです。 JSLコンパニオン、JMPスクリプト言語のアプリケーション、第2版第8章「カスタムディスプレイ」
この例では、2つの異なるプラットフォーム(2変量とオーバーレイ)を使用しています。グループごとに3つの2変量プロットを使用します。Speciesの代わりにStatesを使います。
この例は、1つの州または52の州(コロンビア特別区を含む)があるかどうかにかかわらず、任意の州のサブセットに対して機能します。
お役に立てれば。
これは「ボトムアップ」でディスプレイを構築する簡単な例です。この例では、
カスタムタイトルと "where"テキストボックスを削除します。その後、OutlineBoxを追加します。
plt1のHListBox(2変量解析)、plt2(Oneway解析)。
これらのプロットは単一のレポートなので、単一の分析ナビゲーションのみが表示されます。
必須。それらは表示されていないVListBoxにあり、それ以降はアクティブになります。
最後の追加は、2つのプロットが最初にウィンドウにロードされたときです。