【KNIME】ノード紹介:Value Counter 〜重複データを探せ〜
今回は指定したカラムの中に重複するデータがあるのか無いのか簡単に分かるノードValue Counterを紹介します。繋ぐだけの簡単ノードなので、おまけ活用例もあわせて紹介しますね。
それでは、webに転がっていたデータを一部改変したものを使って進めていきます。
名前と連絡先が入ってますね。この中から連絡先に重複があるかどうか確認します。
Value Counter
説明が不要なほど簡単です。設定画面では、重複を確認したいカラムを指定してapply-OKするだけです。
実行するとこうなります↓
指定したカラムの内容がrowIDとなり、その重複回数がcountというカラム名で吐き出されます。つまり、countが1以外のものは重複してるということです。簡単だと思いませんか?私は、このノードをとてもよく使います。もうお気づきかもしれませんが、KNIMEのテーブル表示ではカラム名のところをクリックするとソートをかけることができます。但し、あくまで表示のみ。実際にソートをかけたいときはsorterというノードを使います。これはまた別の機会に。
- Descendingにして1ではない数が一番上に来たら、重複ありです
- Ascendingにして?が一番上に来たら、欠損値ありです
こんな感じにすると簡易的に状況把握できます。データの数が数百万とか多い時に、テーブル上でソートさせると処理が重く、固まることがあるので要注意です。
<おまけ>
ここからおまけです。重複している連絡先が2つあるようです。このデータを元のファイルから抽出してみます。紹介する内容は1つの例です。他の方法もあると思いますが参考になれば幸いです。
まずRow Splitterでcountが1のもの(重複がないものを)下側出口▶︎へと分離します。つまり、上側出口▶︎には重複があるものが残ります。
続いてReference Row Splitterへ繋いでいきます。
Reference Row Splitter
上側の入口▶︎にあるデータの中から、下側の入口▶︎で入力されたデータと同じものがある場合、出口の上側▶︎からデータを出す。なかったものは下側の出口▶︎になるというノートです。
設定は簡単です。照らし合わせたい【上側入口▶︎由来のカラム名】【下側入口▶︎由来のカラム名】を設定してapply-OKするだけです。ちなみに、①で読んだデータ数(rowの数)は②+③のデータ数(rowの数)に必ず一致するはずです。
さて実行結果をみてみましょう。
元のデータで重複している部分だけ抜き出すことができました。
Value Counterは重複を確認するだけでなく、このカラムにはどんな内容が入っているのかなーみたいなのを確認したい時にも使えますし、実用性の高いノードではないかと思います。是非活用してみてください。