基本値の位置に基づいて相対値を計算するにはどうすればよいですか?みなさん、こんにちは。
列の値の割合を計算する必要があります値1列から選択した値の位置に基づいて値1 。 例として、列の2番目の値に基づいてそれを実行したい場合値1 (位置 2、または値 2)、結果の列Value1_rel相対値を使用すると次のようになります。

さらに、アイテムごとにグループ化する必要があるデータがさらにある可能性があり、各アイテムについて、他のすべての値に対する割合の割合 (おそらく正規化または相対値は少しわかりにくい用語です) を計算します。 どうやってやるの? 説明が不十分な場合はご容赦ください。お気軽に質問してください。
ありがとうございます、よろしくお願いします
結果の共有と伝達Re: 基準値の位置に基づいて相対値を計算するにはどうすればよいですか?こんにちは、ブレイディさん
元の質問がすでに回答されている場合でも、これが許可されることを願っています。
私はlukaszと同様の問題を抱えており、私の問題に合わせてあなたの(非常に良い)答えを微調整しようとしています。
基本的に、1つの列を単独で分割しようとしていますが、2番目(またはk番目)を参照として使用するのではなく、代わりに参照点を見つけるために使用したいラベルという名前の3番目の列があります。 私が抱えている問題は、私の場合「by-loop」を機能させる方法がわからないことです。私のスクリプトでは、すべての値を「big」という名前の最初の値で除算するだけです(理由は理解していますが、修正方法ではありません)。
c << new column("Rel", numeric, continuous, formula(
Eval(
Eval Expr(
:Val[(:Group << get data table) << get rows where(
label == "big" & :Group == Expr( :Group[Row()] )
)] / :Val
)
));
)
/V
Re: 基準値の位置に基づいて相対値を計算するにはどうすればよいですか?こんにちは、Brady さん、コードと説明をありがとうございます。 完璧に機能します。 よろしくお願いしますRe: 基準値の位置に基づいて相対値を計算するにはどうすればよいですか?こんにちは、
この明らかに複雑な式 (おそらく誰かがもっと簡単な式を提示するでしょう) を新しい列で使用できます。
Eval(
Eval Expr(
:Val[(:Group << get data table) << get rows where(
Col Cumulative Sum( 1, :Group ) == 2 & :Group == Expr( :Group[Row()] )
)] / :Val
)
)
おそらく、これを少なくとも少しは開梱する価値があります。
Eval( Eval Expr( )) 構造は、式 Expr ( :Group[Row()] ) の評価を強制するために使用されます。 これを行わないと、各行に複数の値 (グループごとに 1 つ) が返されます。 Eval ( Eval Expr ()) ラッパーと Expr() ラッパーを削除して、私が何を意味するかを確認してみてください。
比率で使用する値を決定するには、現在のグループ内の 2 行目を取得する必要があります。 この行を見つけるには、グループ (get rows where 句の 2 番目の部分) で一致する必要があり、グループ内の 2 番目の値としても一致する必要があります。 これを行う簡単な方法は、:Group でグループ化された 1 の列の累積合計を確認することです。 この列 == 2 の場合、あるグループの 2 番目の値が得られます。 これは複数の行で発生しますが、句の 2 番目の部分は、結果を現在の行のグループと一致するグループに制限します。 この方法では、テーブルをグループまたは値で並べ替える必要さえありません。
累積和等価の 2 を k に変更すると、グループ内の 2 番目の値の代わりに k 番目の値を使用できるようになります。
乾杯、
ブレイディ

Re: 基準値の位置に基づいて相対値を計算するにはどうすればよいですか?コメントありがとうございます。 はい、以前のバージョンの投稿ではテーブルにゼロがありましたが、それは少し混乱するかもしれないと考えたので、各項目グループの 2 行目の値を取得して必要な値を計算することについて質問する方が簡単になるのではないかと思いました。 。 はい、Param1 列の「ゼロ」は行番号を決定するだけでした。Re: 基準値の位置に基づいて相対値を計算するにはどうすればよいですか?Value1_rel数式列である可能性があります。
サンプルデータに基づく式がどのようなものになるかわかりません。
通常、私は相対的な意味を期待します値1 -パラメータ1 、 または値1 - 0 , しかし、どちらも例とは一致しません。
編集:私は次の式だと思いますValue1_relデータに一致するものは 2 /値1 。 それを列の式に入れることができます。 しかし...
どこかからゼロを取得したのではないかと思います。行番号 2 をゼロから検索したいと考えています。 JMP データ テーブルは通常、すべてのデータが 1 つの行にまとめられて配置されます。 Param 値を Value 列の列プロパティとして配置することは合理的かもしれません。 これにはもう少し JSL スクリプトが必要になりますが、データの構成がより適切に反映される可能性があります。