非プログラマーのためのインフォマティクス入門。(仮)

非プログラマーがインフォマティクスについて勉強したことを記録します。主にKNIMEというソフトを使用しています。

【KNIME】ノード紹介:Transpose, Pivoting 〜表(table)の縦と横(行と列)を入れ替えたい〜

 表の行と列を入れかえたいよーということ、ありませんか?ちなみにエクセルでは

  1. 表をコピーする
  2. "形式を選択して貼り付け"を選ぶ
  3. "行列を入れ替える"にチェックをいれてOK

こんな感じでできます(私は他のやり方は知らん)。

ではKNIMEではどうやるのでしょう?

はい、ノード1個で終わりますよ!

 

Transpose

特に設定も不要です。Transposeノードをつなげれば縦横が入れ替わりますよ!

f:id:sumtat:20170731162123p:plain 地味です。そしてあんまり面白くないですね。ポジティブに言えば"とても簡単"ですね。そんなに頻繁ではないですが、たまに使います。

 これだけだとあまり面白くないので、pivotテーブルの作り方を紹介します。これも縦横入れ替えの1種ですよね!"エクセルの使い方"みたいなサイトをみていると、「ピボットは神」みたいな扱い受けてる感がある?ような気もするので、お役に立てるのではないかと思います。

 

 

Pivoting

 指定した項目でグループ化すると共に、付随する他のカラムをカラムヘッダにする(縦横入れ替えする)ような処理をします。

f:id:sumtat:20170731171656p:plainpivotingノードの設定を見ていきます。

f:id:sumtat:20170731172014p:plain

設定の方法は、以前に紹介したGroupByノードとよく似ています。

【KNIME】ノード紹介:GroupBy 〜同じものをひとまとめに〜 

まずはGroupsの設定です。まとめたいカラムを緑枠内に指定します。続いてPivotの設定に移ります。

f:id:sumtat:20170731172219p:plain行と列(縦と横)を入れ替えたいカラムを選びます。今回は【種族】というカラムです。種族の中に含まれる"人間、猿、犬、マウス"というデータが新しいカラム(4種類)となります。ここまででTableの行(縦)は何を示し、列(横)は何を示すかという枠組みができたことになります。

 ではTable内のデータとして何を使いますか?というのが次のManual Aggregation設定です。

f:id:sumtat:20170731172806p:plain今回は【効果】を指定しています。今回はカラムを1つしか設定していませんが、複数選択するとカラムが増えます。Aggregation(click to change)を選ぶと、様々な処理を選ぶことができます。今回はFirst(最初のデータを採用する)を選びました。

 この3 stepsを終えたらapply-OKをして実行です。Pivotingノードには出口▶︎が3個あります。一番上の▶︎がpivot tableになります。右クリックメニューを開くと一番下に虫眼鏡アイコンが3個あります。これは出口▶︎のそれぞれに対応しています。Pivot tableを選択すれば結果を表示することができますよ!

(アイテム : Compound_ID、種族 : Species、効果 : inhibition% or conc.などに読み替えればmed chemの人は馴染みがあるのでは? )

 

 Pivot後のカラム名は【マウス+効果】【人間+効果】のように、table内の数値が何由来なのかがわかるようになっています(区切り文字が+というのはノードの使用)。このカラムの付け方がちょっと気に入らねぇってこともあると思います。

f:id:sumtat:20170731180014p:plain

ということで、次回はカラム名の変更をしてみようと思います。

f:id:sumtat:20170731175623p:plain一つずつ手作業でも変えれますし、一発で上の感じに変えることも可能ですよ。