変数による行の凡例の変更私はいくつかの二変量プロットを自動化しようとしていますが、行の凡例を変更しようとしている問題に直面しています。
これが私がやろうとしていることの例です:
Open("$SAMPLE_DATA/Big Class.jmp");
variables = {"age", "sex"};
for(v=1,v<=nitems(variables),v++,
::var = variables[v];
biv = Bivariate( Y( :height), X( :weight),
group by(as column(::var)),
Fit Spline( 1, Standardized, {Line Width( 2 )} ));
Report( biv )[Frame Box(1)] << Row Legend( ::var, color(1), marker(1));
); 私の期待する出力は、同一のプロットを持つ2つのウィンドウです。1つは年齢に対するスプラインフィットと凡例、もう1つは性別に対するスプラインフィット凡例です。スプラインフィットは期待通りに機能していますが、行の凡例コマンドが私の変数を認識していません。何が足りないの?
前もって感謝します!
再:変数による行の凡例の変更非常に参考になります。ありがとうございました!
再:変数による行の凡例の変更違いの理由は、2つの異なるステートメントの要件のためです。 あなたが言及するFit Splineは変数参照を持っていません、それで私はあなたがGroup ByがなぜEval()を必要としないのか実際に質問していると思います。 その理由は、Group ByとRow Legendの要件の組み合わせです。 Group Byは非常に単純な文であり、柔軟性は非常に限られています。 列を指定しなければならないことを知っています。 実際、コードはAs Column()関数がなくても非常にうまく動作します。 行の凡例に目を向けると、この要素はさまざまな形式をとることができ、Eval()なしでは、パーサーは情報の一部として:: varの実際のストリングを使用しようとしますが、:: varは解析したくないものです。:: varの値は、解析したいものです。
再:変数による行の凡例の変更ありがとうございました!
私が変数評価を理解するのを助けるための二次質問 - なぜスプラインフィットはeval()なしでもうまくいくのですか?いつ変数を評価する必要があり、いつ評価する必要がないのですか。
再:変数による行の凡例の変更:: Var変数をEval()するだけです。
Open("$SAMPLE_DATA/Big Class.jmp");
variables = {"age", "sex"};
for(v=1,v<=nitems(variables),v++,
::var = variables[v];
biv = Bivariate( Y( :height), X( :weight),
group by(as column(::var)),
Fit Spline( 1, Standardized, {Line Width( 2 )} ));
Report( biv )[Frame Box(1)] << Row Legend( eval(::var), color(1), marker(1));
);