こんにちは、みんな、
指定されたリストの値に基づいて個別の一方向チャートを作成しようとしています。リスト内の where column == value などを使用して、for ループでそれを行うことができます。 問題は、where 句を使用すると、チャートの上のリストボックスにこの TextBox が表示され、JSL を通じてテキストを変更できないことです。 右クリックしてプロパティに移動すると変更できますが、これをコードを通じて実行したいと考えています。 この方法ではデータが何であるかが表示されず、テキストを変更できないと誤解を招く可能性があるため、助けていただければ幸いです。 正しい方法は、列に汎用の By 句を使用しているが、コードを通して同じように表示したい場合に発生します。 以下の例をご覧ください。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
types = {"F", "M"};
ow = Oneway(
Y( :height ), // Dependent variable
X( :age ), // Factor variable
Where(:sex == types[1])
);生成されるもの:

この部分には :Sex == "F" と表示したいので、グラフがレポート内にある場合、現時点では "F" によってサブセットされていることを示しており、そのような情報は提供されません。
このコードを使用すると、次のようになります。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
ow = Oneway(
Y( :height ), // Dependent variable
X( :age ), // Factor variable
By(:sex)
);わかりました:

for ループで「M」が得られることはわかっていますが、where 句を使用して最初のループに sex=F と同じ詳細を取得するにはどうすればよいですか。
よろしくお願いします。助けていただければ幸いです。
必要なのは、JMP に渡される内容を完全に拡張して、Oneway を JMP に渡すときに式の評価を行う必要がないようにすることです。
これを行う 1 つの方法は次のとおりです。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
types = {"F", "M"};
Eval(
Substitute(
Expr(
ow =
Oneway(
Y( :height ), // Dependent variable
X( :age ), // Factor variable
Where( :sex == _types_ )
)
),
Expr( _types_ ), types[1]
)
);