tips009

データとツリー⑤
— Cull Pattern

Sets ▸ Sequence ▸ Cull Pattern

TrueFalse の並びで、リストを間引くコンポーネント。
True の位置が残り、False の位置が消える。

何をつなぐか

  • L(List)に元のリスト、P(Cull Pattern=間引きの並び)に True / False のリストをつなぐ
  • P は Panel に直接書いてもよいし、比較のコンポーネントが返した並びをそのままつないでもよい
3行とも元のリストは同じ A〜F。①②が2個の並び、③が3個の並び。クリックで拡大。

ListA〜F の6個

番号012345
中身ABCDEF

① True, False を渡す

  • PTrue False の2個を渡す(図①の①・オレンジの枠)

ResultP = True, False

残るものACE

2個の並びが6個に3回当てられ、1つおきに残る。

② False, True に入れ替える

  • P の順番だけを入れ替える(図①の②)

ResultP = False, True

残るものBDF

①で消えた B D F が、②では残る側になる。

③ 3個の並びを渡す

  • PTrue True False の3個を渡す(図①の③・青い枠)

ResultP = True, True, False

中身ABCDEF
残るものABDE

P がリストより短いときは、先頭から繰り返し当てられる。
3個の並びが 0〜2番と 3〜5番に1回ずつ当たり、表の の位置が消える。

並びの長さで変わること

True だけ1個全部残る。AF の6個のまま
False だけ1個何も残らない。出力は0個になる
リストより長い並び余った分は使われない。True, False を4回くり返して8個にしても、結果は A C E のまま

どの長さでも警告は出ない。
コンポーネントは白いまま、結果の個数だけが変わる。

使用例

True / False は手で書かなくてよい。
比較のコンポーネントが返す並びを、そのまま P につなげる。

  • 10 から 60 までの6個を Larger Than(Maths ▸ Operators ▸ Larger Than)の A に、25B につなぐ(図②の①)
  • その > 出力を Cull Pattern の P につなぐ(図②の②)
①の Larger が返した並びが、そのまま②の P になっている。しきい値は左下のパネルの 25。クリックで拡大。

Result25 より大きいものだけ残す

数値102030405060
残るもの30405060

Larger Than が返したのは False False True True True True の6個。
先頭の2つが False なので、1020 が落ちて4個になる。

使いどころ

  • 並んだ柱や梁を1本おきに間引いて、ピッチを粗くする。
  • 高さや面積で比べた結果を P に渡し、条件に合うものだけを残す。
  • True True False のような並びで、繰り返しのリズムを作る。

注意

P を何もつながないと、既定の False, False, True, True が使われる。
警告は出ないので、A〜F の6個なら CD だけが黙って残る。
間引いたあとのリストは、番号が 0 から振り直される。
元の番号で何かを引き当てるなら、間引く前のリストを別に残しておく。

残した側と捨てた側を両方受け取る Dispatch は、別の tips で扱う。

#データ抽出