たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

KNIME_レコードの複製と数値の反復【One Row to Many】【RowID】【Java Snippet】

使用Node:One Row to Many / ROWID / Java Snippet
あるカラムに記載された数値の数だけレコードを複製し、かつRowIDの反復数を活用し、Countを反復するカラム「Iteration」を作成
グループごとの連番を作成する際にはRowIDを活用できそう

WFの例

▼配置例▼

-----解説-----
1.Node【Table Creator】からレコードを読み込み
2.Node【One Row to Many】でカラム「Col_Count」の数値に基づきレコードを複製
3.Node【RowID】を新規カラムにコピー
4.コピーしたカラムを使用して文字列をSplit


【One Row to Many】で任意の数だけレコードをコピー

▼Node設定例▼

今回はカラム「Col_Count」を複製数の参照先として指定した

▼実行前▼
▼結果▼



【RowID】を新規カラムにコピー

▼Node設定例▼



コピーした【RowID】の文字列から反復数を取り出す

反復数の取り出しについての解説は、記事「KNIME_文字列操作その1【Java Snippet】左から指定の文字までを抽出」を参照
本記事の例では、カラム「Iteration」の値はString型なので必要に応じて変換
tama-shi.hatenadiary.com

グループごとに通し番号を反復する方法は以下の記事でも紹介
tama-shi.hatenadiary.com

▼KNIME Hub▼
kni.me