Spotfireの別の列の値に基づいて計算された列

ブルターニュエンフィールド

Spotfireを使い始めたばかりで、特定の計算列を作成する方法を理解するのに少し苦労しています。OVER関数を使用する必要があることはかなり確信していますが、それを完全に理解しておらず、インターウェブ上にドキュメントや例はほとんどありません。

これが私が扱っているデータのサンプルです:

loc     wafer   x   y   pass    bin  
T25     10      2   37  1       13  
T25     10      2   37  2       6  
CMI     10      2   37  NA      13  
T25     10      2   37  NA      13  
T25     10      2   38  1       13  
T25     10      2   38  2       13  
CMI     10      2   38  NA      13  
T25     10      2   38  NA      13  
T25     10      2   70  1       1  
T25     10      2   70  2       4  
CMI     10      2   70  NA      1  
CMI     10      2   70  NA      1  
T25     10      2   70  NA      1  
T25     10      2   70  NA      1  

私が作成しようとしている列は、パス値に基づいています。したがって、場所、ウェーハ、およびxy座標ごとに、pass = 1の場合は常に、bin値をその行の新しい列にコピーします。また、同じpass = 1 bin値を、passがNAではない一致する場所、ウェーハ、xy座標にコピーする必要があります。これが私が見たいものです:

loc     wafer   x   y   pass    bin newCol  
T25     10      2   37  1       13  13  
T25     10      2   37  2       6   13  
CMI     10      2   37  NA      13  NA  
T25     10      2   37  NA      13  NA  
T25     10      2   38  1       13  13  
T25     10      2   38  2       13  13  
CMI     10      2   38  NA      13  NA  
T25     10      2   38  NA      13  NA  
T25     10      2   70  1       1   1  
T25     10      2   70  2       4   1  
CMI     10      2   70  NA      1   NA  
CMI     10      2   70  NA      1   NA  
T25     10      2   70  NA      1   NA  
T25     10      2   70  NA      1   NA  

私の現在の表現は次のとおりです。

CASE
  WHEN [pass] = "1" THEN Concatenate([bin]) OVER ([location],[wafer],[x],[y])
END

ビンをpass = 1の行にコピーしますが、pass = 2の行はコピーしません。

誰も

[bin]場合[pass] = "NA"値が発生しないように編集、全体を次のIf()ように囲みます

If([pass]!="NA", First(If([pass]="1",String([bin]),"NA")) OVER (Intersect([loc],[wafer],[x],[y])), "NA")

あなたは正しい方向に進んでいると思いますが、これは本当に単純な表現ではありません!これが私が思いついたものです:

First(If([pass]="1",String([bin]),"NA")) OVER (Intersect([loc],[wafer],[x],[y]))

だからこれを分解しましょう:

  • First(...)最初の結果が欲しいので選ばれました!インラインIf()は、の各行のNA返し[pass] != 1ます。これは、に変更First()することで確認できます。Concatenate()
  • If([pass] = "1", String([bin]), "NA")私たちがいることを確認しますのみ、これまでに値を記録[bin]またはNAこれがないと、結果にはのすべての値が含まれます[bin]-を削除してみてIf()ください!
  • OVER Intersect([loc], [wafer], [x], [y]) これらの4つの列の一意の組み合わせごとに、「ノード」の階層を作成します(以下のリンク先のドキュメントを参照)。

データのサイズによっては、が原因で、これは非常に遅い式になる場合があることに注意してくださいIntersect(...)データがいつ更新されるかを計算するのに長い時間がかかる場合は、2つの列を使用するとより良い結果が得られる可能性があります。

  1. [ID] これは単に Concatenate([loc], [wafer], [x], [y])
  2. [Result]これは上記の答えですが、最後が次のようになっている点が異なります(1つの列でのみ比較している... OVER [ID]ためIntersect()使用する必要はありません)。

OVER関数の例とドキュメントについては、Advanced CustomExpressionsのSpotfireヘルプファイルを確認してください私はそれがまだ完全に理解できないことを知っています。OVER関数は脳にとって少しストレッチです:)


最初の試みにコンテキストを追加し、それが機能しなかった理由を追加するだけです。

の値について[bin]計算を行っていないため、次の場合を使用して単純化します。

WHEN [pass] = "1" THEN [bin]

もちろん、[pass] != "1"他のケースを指定していないので、あなたが持っている式は、のとき値を返しません。これを修正するには、次のようなものが必要です。

CASE
  WHEN [pass] = "1" THEN [bin]
  WHEN [pass] != "NA" THEN ...
  ELSE null
END

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

前の列に基づいて計算された列

分類Dev

パンダ-現在および前の行の別の列の値に基づいて計算された値を持つ列を追加します

分類Dev

列の個別の値に基づいて列の値を計算するApacheSpark

分類Dev

行の空白列の数に基づいて計算された列

分類Dev

PHPの別の列値に基づいて列値を計算します

分類Dev

列内の一意の値の数に基づいて計算された新しい変数

分類Dev

Excel:別の列の値とマップされた値に基づいて値を合計します

分類Dev

user_idで分割された他の列の値に基づいて行の差を計算する方法

分類Dev

Spotfire:別のテーブルのデータに基づいて計算列を挿入します

分類Dev

別の列に基づいて列の平均を計算する

分類Dev

レシート生成なしのIDに基づいて計算された列

分類Dev

別の列laravelに基づいて列を計算する

分類Dev

SQL計算された列の最小値に基づいて行全体を取得します

分類Dev

別の列の値に基づいて列を乗算する

分類Dev

別の列に基づいて値を合計してから減算する

分類Dev

前のグループで計算された別の値に基づいて値を伝播する

分類Dev

別の列の特定の値の計算に基づく新しい列

分類Dev

別の列の特定の値の計算に基づく新しい列

分類Dev

別の列に基づいて1つの列の合計を計算する

分類Dev

別の列に基づいて列の間隔の合計を計算する

分類Dev

Spotfire:挿入する正しい値を取得するために、別の列を使用して空白のある列に基づいて新しい列を計算する方法

分類Dev

Spotfire-条件に基づいた行比率で計算された列

分類Dev

条件に基づいてjson配列から抽出された値の合計

分類Dev

別の列の1つの列に基づいて行の値を見つけ、計算を行います

分類Dev

別の列の値に基づいてRの列の値aを減算する

分類Dev

同じ列の以前の値に基づく列の値のベクトル化された計算?

分類Dev

他の列で定義されたサブセットに基づいて、グループごとに複数の列の中央値を計算します

分類Dev

別の列の値に基づいてネストされたtibbleの列の名前を変更する方法

分類Dev

パンダ-以前に計算された行の値に基づいて行の値を計算します

Related 関連記事

  1. 1

    前の列に基づいて計算された列

  2. 2

    パンダ-現在および前の行の別の列の値に基づいて計算された値を持つ列を追加します

  3. 3

    列の個別の値に基づいて列の値を計算するApacheSpark

  4. 4

    行の空白列の数に基づいて計算された列

  5. 5

    PHPの別の列値に基づいて列値を計算します

  6. 6

    列内の一意の値の数に基づいて計算された新しい変数

  7. 7

    Excel:別の列の値とマップされた値に基づいて値を合計します

  8. 8

    user_idで分割された他の列の値に基づいて行の差を計算する方法

  9. 9

    Spotfire:別のテーブルのデータに基づいて計算列を挿入します

  10. 10

    別の列に基づいて列の平均を計算する

  11. 11

    レシート生成なしのIDに基づいて計算された列

  12. 12

    別の列laravelに基づいて列を計算する

  13. 13

    SQL計算された列の最小値に基づいて行全体を取得します

  14. 14

    別の列の値に基づいて列を乗算する

  15. 15

    別の列に基づいて値を合計してから減算する

  16. 16

    前のグループで計算された別の値に基づいて値を伝播する

  17. 17

    別の列の特定の値の計算に基づく新しい列

  18. 18

    別の列の特定の値の計算に基づく新しい列

  19. 19

    別の列に基づいて1つの列の合計を計算する

  20. 20

    別の列に基づいて列の間隔の合計を計算する

  21. 21

    Spotfire:挿入する正しい値を取得するために、別の列を使用して空白のある列に基づいて新しい列を計算する方法

  22. 22

    Spotfire-条件に基づいた行比率で計算された列

  23. 23

    条件に基づいてjson配列から抽出された値の合計

  24. 24

    別の列の1つの列に基づいて行の値を見つけ、計算を行います

  25. 25

    別の列の値に基づいてRの列の値aを減算する

  26. 26

    同じ列の以前の値に基づく列の値のベクトル化された計算?

  27. 27

    他の列で定義されたサブセットに基づいて、グループごとに複数の列の中央値を計算します

  28. 28

    別の列の値に基づいてネストされたtibbleの列の名前を変更する方法

  29. 29

    パンダ-以前に計算された行の値に基づいて行の値を計算します

ホットタグ

アーカイブ