-->

【KNIME】(ナイム)Cell Splitter(セルスプリッター)の使い方【活用場面多数!文字でセルを分けたい!セルを分割!ノード紹介】

2022/05/13

Knime

t f B! P L

・この記事の概要

KNIME(ナイム)のCell Splitter(セルスプリッター)を解説。
このノード特定の文字をセルの区切りに置き換え、任意の場所でセル分割できる。


まえがき

どうもシャイン社員です。
最近リモートワークが増えてきて机の周りがごちゃごちゃしてきました。
そこで気になっているこの商品。
買って試してみようと思います。



さて、今回はCell Splitterノードの紹介です!

Column SplitterRow Splitterとは名前が似ているCell Splitterですが
上記2つとはだいぶ毛色が違うノードですので混同しないように気を付けてくださいね。

セルを切るならCell Splitter

Cell Splitterの使用用途はセルの分割です。

一つのセルの中に2つの項目が混在していて切り分けたいということはありませんか?

一つのセルを2つ以上に分割することできるのがCell Splitterです。
イメージとしては下記になります。

左のテーブルのように一つのセルに「年-月-日」で書かれた内容があります。
これをそれぞれ「年」「月」「日」のセルに分割できます。


テキストデータや方眼紙などのそのまま読み込むだけでは
体裁が整っていない
データを見やすいテーブルデータに起こすのに便利です。
それでは早速使い方を見ていきましょう!

Cell Splitterの設定方法


下記がCell SplitterのConfigure画面になります。


基本的な設定事項は画像に注釈を付けました。
以下が解説です。

Select a Column :Enter a delimiterを理解しておけばOKです。


Select a Column :
セル分割したいカラムを選択します。

Remove input column
チェックを入れると入力されたセルは出力には表示されません。

Enter a delimiter:
ここで指定した文字をセルの区切り(分割点)に置き換えてセルを分割します。
分割点を指定する文字は半角1文字しか指定できません
全角複数文字でセルを区切る方法は記事下に載せております

Use \ as ascape character
チェックを入れるとエスケープコードを使用してセルの分割点を指示できます。
\r:改行
\t:tab
といった具合に文字列で表せないものを基準にセル分割可能です。

Enter a quoatation character :
Enter a delimiter:で指定された文字を含むが、セルの分割対象にしたくない文字列がある場合
ここにその文字列を記入すると分割の対象から外れる。

Remove leading and trailing while space chars(trim)
セルの分割処理後に空白セルとなってしまう場合は
チェックを入れると空白セルを除外して出力する。

Output
・As list
リスト形式で出力する

・As set(remove duplicates)
重複を除いたリスト形式で出力する。

・As new columns
新しいカラムを新規に作成して出力する。

他にも細かい設定はありますが基本的にはこのあたりを抑えておけばOKです。


全角文字でセルを区切る方法

Cell Splitterは1文字の半角しかセルの分割点としては使えません。


String Manipulationノードを併用することで全角文字、複数文字のセルの区切りが可能です!
String Manipulationは文字列を置き換えるノードです。

試しに芥川龍之介の小説 羅生門の一文をテキスト形式で取り込み
「。」(句点)をセルの分割点としてセル分割を行ってみようと思います。
今回は句点1文字で行いますが、複数文字でも応用可能です。

羅生門の小説はこちらのサイトからお借りしました。
#羅生門の著作権は既に切れているため使用させていただきました。

ワークフローは下記です。

まずTable Creatorで羅生門の一部をコピペして取り込みます。

途切れていますが2000文字以上が1つのセルに入っております。
下記のように1つのセルに取り込むためパンパンになります…。
(ふりがなが一緒にコピペされていますが、気にしないでください…)




次にString Manipulationで「。」を「_」(アンダーバー)に置換します。
String Manipulationの詳細な解説は省きますが
replaceコマンドを使って「。」→「_」に置換するコマンドを書きます。
。も_も文字列のため”(ダブルクォーテーション)で囲みます。

設定画面は以下のとおりです。


String Manipulationのノード実行結果は下記の通り、
「。」を「_」に置き換えることができました。



あとはCell Splitterでセルを分割します。
設定画面は以下のとおりです。



実行すると「_」の場所でセル分割できていることが分かります。

カラム方向にセルが続いてしまっているのでちょっと見づらいですね。
Transposeノードを使って行列を入れ替えて見やすくします。
Transposeは設定は特に不要でそのままExcecuteしてOKです。

実行結果は下記の通りです。
このように1文ずつセルに取り込む事が出来ました!
 


あとがき

いかがでしたでしょうか?
Cell Splitterは簡単なノードのわりに強力な編集効果を持つノードなので
ぜひ使い方をマスターしましょう!

それでは!



このブログを検索

注目の投稿

【KNIME】(ナイム)最強の表計算マクロソフト!KNIME(ナイム)のご紹介!使い方は?できることは?

この記事の概要 KNIME(ナイム)は表計算、マクロ動作を主機能とするフリーソフト。 エクセルと同等の機能を有しており、行列計算やグラフ描画可能。 ノードと呼ばれる箱を線で繋ぐことで計算処理を行う事が出来るため 関数名などを覚える必要はなく、処理の内容が分かりやすい。 Pytho...

スポンサー広告

スポンサー広告

QooQ