列を正規化するTLDR: 列をそれ自体に正規化するにはどうすればよいですか?
添付資料をご覧ください。以下のものを所持しています。
- 列A = 0,1,2,3。これはID番号のようなものだと考えてください。
- 列B。これはタイムスタンプと考えてください
- 列C。これはデータです
ここで、B=1 の場合にのみ、列 D に列 C のデータが含まれるようにします。
添付ファイルでわかるように、C の黄色のセルを手動でコピーして D に貼り付けました。何度も貼り付けました。

したがって、D/Cを行う際には、基本的に列C全体をこれらの特別な黄色の値に正規化します。私がこれらすべてを行う理由は、D/Cを求めるためです。つまり、この列の値が0.9の場合、Cは黄色のCよりも低く、1.1の場合、黄色のCよりも高いことを意味します。
では、簡単に言うと、黄色の値を取得できるようにするために D に入力する数式は何でしょうか?
自動化とスクリプト基本的なデータ分析とモデリングRe: 列を正規化する編集
すみません、もっと注意しないと。D/Cの入手方法を尋ねていたわけではないですよね?
CとDを選択し、右クリックします。新しい数式列 > 結合 > 比率(逆順)

Re: 列を正規化するまだ誤解している場合は申し訳ありませんが、B が 1 でない場合に D が欠落し、B が 1 の場合に D に C の値を持たせたい場合は、次の式を試してください。
Choose( :B, :C, . )
Re: 列を正規化するご回答ありがとうございます。正確にはそうではありません。D列に、それらの数値を再現する数式を追加したいだけです。
この数式は、C列の黄色のセルを列D全体に適用します。つまり、列D全体が黄色のセルの繰り返しになります。(おそらく、数式のどこかにB=1とハードコードされているはずです。)
おそらく、例のDを手動で入力したせいで混乱してしまったのでしょう。これらの数値は手動で入力しましたが、Dを自動的に入力してくれる数式が欲しいのです。
Re: 列を正規化するご回答ありがとうございます。ただし、ご回答と私が求めているのは D の式だけですので、比較してみます。最終列と D を比較すると、同じではないことがわかります。

Re: 列を正規化する式はただ
If( :B == 1, 1, :D / :C )

Re: 列を正規化するスクリプトで解決する方法もあると思いますが、今回の場合は、Tallデータ形式からWideデータ形式に切り替える方が合理的だと思います。JMPの計算式を使用する場合、計算に必要なすべての項が同じ行にあると最も簡単です。(場合によってはこれが不可能なこともあり、その場合は巧妙なスクリプトが必要になりますが、今回の場合は可能です。)
私の提案:データテーブルを分割してワイド形式にし、各「B」に別々の列を用意してください。そうすれば、正規化(Cで割る)が容易になります。

列名を再コード化して、もう少し読みやすくすることができます。

新しい数式列を追加すると、次のようになります。

これでよろしいでしょうか?参考までに表を添付しました。
Re: 列を正規化する列中央値()のようなグループ化されたCol集計を使用して、列Dの値を次のように定義します。
Col median(if (:B==1,:C), :A)
列 D をスキップして、 :C/分母を直接計算することもできます。
マーケットプレイスには、このような正規化を自動的に実行するアドインがあります。
Re: 列を正規化するいいえ、Dの式を見つけたいのです。私の例ではDの数字を手動で入力しましたが、式が欲しいのです。Re: 列を正規化する何が問題なの
Col median(if (:B==1,:C), :A)
?
Re: 列を正規化するHogiさん、これが解決策です!ありがとうございます!中央値が見当たらないので「median」関数を使う必要があるのはちょっと変ですが、仕組みはわかりました。ありがとうございます!マーケットプレイスのアドインも調べてみます。
Re: 列を正規化するありがとうございます!確かに動作しますが、データセットが大きいため、人間が表示するには少し扱いにくいです。Hogiさんの回答の方がシンプルですが、とにかくアドバイスをありがとうございます!