式を結果に変換するためのJSLこんにちは、
次のjslコードがあります
dt << New Column( "I (%)", (:Mean * 100) );
列 (Mean) を取り、100 を掛けて、数式で I(%) という名前の新しい列を作成します。
数式は必要ありませんが、新しい列の計算結果だけが必要です。 これどうやってするの?
どうもありがとう。
スクリプティングRe: 式を結果に変換するJSLどうもありがとう。Re: 式を結果に変換するJSLありがとう! 非常に明確な。Re: 式を結果に変換するJSLどうもありがとう、非常に便利です。Re: 式を結果に変換するJSLこれは少し話題から外れているかもしれません。別の投稿を作成して、これについてさらに議論することができます...
ドキュメントは Set Each Value に関するものですが (JMP のドキュメントは必ずしも適切であるとは限りません...) このような場合に対処する最も簡単な方法だと思います。 後で式を削除することを心配することなく、Set Each Value を使用して複雑な「式」を簡単に使用できます。 Values() を使用すると、計算が少し難しくなる可能性があります。私の例を参照してください (私は間違いなく JSL マトリックスに精通していないため、私の例で行ったことを行うためのより簡単な方法がある可能性が高いです)。
数式を使用した例、各値と値の設定:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//With formulas
newCol = dt << New Column("Formula_simple", Numeric, Continuous, Formula(:height*:weight));
newCol << Delete Formula;
newCol = dt << New Column("Formula_ColMin", Numeric, Continuous, Formula(:height*ColMin(:weight, :sex)));
newCol << Delete Formula;
//With Set Each Value
newCol = dt << New Column("SetEach_simple", Numeric, Continuous, Set Each Value(:height*:weight));
newCol = dt << New Column("SetEach_ColMin", Numeric, Continuous, Set Each Value(:height * ColMin(:weight, :sex)));
//With Values
newCol = dt << New Column("Values_simple", Numeric, Continuous, Values((:height << get values) :*</img> (:weight<< get values)));
newCol = dt << New Column("Values_ColMin", Numeric, Continuous, Values(
Summarize(exg = By(:sex), exm = Min(:weight)); //get min values by group
m_val = J(N Rows(dt),1,1);//matrix for values
height_vec = :height << get values;
For(i = 1, i <= N Items(exg), i++, //loop to "fill" matrix for values
tempRows = Loc(:sex << get as matrix, exg[i]);
m_val[tempRows] = height_vec[tempRows] * exm[i];
);
m_val;
));Set Each Value は問題なく動作しているように見えますが、舞台裏で何をしているのでしょうか? ドキュメントを更新して、この動作またはこれを行うために作成された新しい関数を含める必要がありますか? Set Each Values の動作が変更された場合、人々が持っている非常に多くのスクリプトが壊れる可能性があります。
Re: 式を結果に変換するJSLその動作は、文書化されている << Set Each Value メッセージの意図された目的です。
Re: 式を結果に変換するJSLクーラー! 各値を同じ値に設定する必要があると想定していました。
Re: 式を結果に変換するJSLHee は Set Each Value を使用した簡単な例です
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
dt << new column("times100", numeric, continuous, set each value(:height*100));

Re: 式を結果に変換するJSLこの場合、そのメッセージは役に立ちません。 ターゲット列のすべての行を同じ定数値に設定するために使用されます。

Re: 式を結果に変換するJSLいいね!
Re: 式を結果に変換するJSL式はまったく必要ありません。 スクリプトの実行後に値を動的に変更する場合を除き、スクリプトを作成するときに列式を使用しないことをお勧めします。 したがって、あなたのケースは次のように解決できます。
dt << New Column( "I (%)", Numeric, Continuous, Values( (:Mean << Get Values) * 100) );
Re: 式を結果に変換するJSLFormula() の代わりに <Re: 式を結果に変換するJSL
wait(3) は、それを見ることができるようにするためのものです。 <
式エディターを使用して、同じ効果の式をクリアすることもできます。
Re: 式を結果に変換するJSLNamesDefaultToHere(1);
// Sample table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Add a formula column
dt << NewColumn("BMI", Numeric, Continuous, Formula(:weight/(:height^2)));
// Make sure the formula is run
dt << runFormulas;
// Wait a little, then remove the formula
Wait(3);
Column(dt, "BMI") << deleteFormula;