選択した行のみに数式を適用する (JSL)JSLのみを使用して、選択した行に数式を適用するにはどうすればよいですか? ご協力いただきありがとうございます。
Re: 選択した行のみに数式を適用する (JSL)Unit列も摂氏に変更しない限り、Valueフィールドの値を直接変換することはお勧めしません。
各値をifステートメントで設定して、列の値を置き換えることができます。 else の部分では、現在あるのと同じ値を「返す」。 このようなものが動作するはずです:
:Value << Set Each Value(
If(:Unit=="°F" /*& Selected()*/,
Conversions:Farenheit To Celsius(:Value)
, //else keep value
:Value
);
)
Re: 選択した行のみに数式を適用する (JSL)データテーブルにも同様の状況があります。 私の目標は、「値」列のすべての値を華氏から摂氏に変換することです。 これを行うために使用しているスクリプトは次のとおりです。
For Each Row(If(:Unit=="°F", Selected(RowState())=1));
For Each Row(:Value = If(Selected(RowState(Row())), Conversions:Farenheit To Celsius(:Value)));
スクリプトは変換に関して必要なことを実行しますが、単位 °F に関連付けられていない値はすべて削除されます。 選択されていない列を無視し、最終的に単位°Fに関連付けられていない値を保持するために追加できるスクリプトはありますか?

Re: 選択した行のみに数式を適用する (JSL)これは、あなたがやりたいことの私の解釈の例です。

最後の列は、列式を使用しています。 式は条件付き計算を実装します。

行の状態は、JMP の動作において重要な部分です。 このコードは同等ですが、列式をインストールしていません。
Names Default To Here( 1 );
col = Current Data Table() << New Column( "Conditional BMI" );
For Each Row( col[] = If( Selected( Row State( Row() ) ), (703 * :weight) / :height ^ 2 ) );
Re: 選択した行のみに数式を適用する (JSL)選択した行のみを処理する方法を示す例を次に示します。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
// pause to show the original data table
wait(5);
// select some rows
dt << select where( :sex == "F" );
For( i = 1, i <= N Rows( dt << get selected rows ), i++,
dt:age[i] = dt:age[i] - 2
);
dt:weight[dt<<GET selected="" rows=""></GET>
Re: 選択した行のみに数式を適用する (JSL)値だけが必要なのか、これを別の列式にしたいのかについては言及していません。 それが列式の場合は、さらに情報を提供する必要があります。以下は、6 行のうちの 2 行のみを使用した計算の例です。
Names Default to Here(1);
dt = new Table("Test", Add Rows(6), New Column("Values", numeric, continuous, Set Values(J(6,1, Random Integer(1,20))) ) );
mysum = :Values[2]^2 + :Values[4]^2 - 4 * :Values[2]*:Values[4] ;
show(mysum );