【KNIME 】Excel?のMROUND関数と同じことをKNIMEでやってみよう!
新年度がスタートしましたね!
私はこの春から、新しいことに挑戦することになりました。これまでは薬品を混ぜたり、フラスコや試験管を触ったりする仕事をしていたのですが(いらすとやイメージだとこんな感じ↓)
4月からは、computerを使って化学する世界で頑張ることになりました。in silicoとかケモインフォマティクスとか、そういう感じのワード紹介される分野です。ゼロからのスタートなので不安も多いですが頑張ろうと思います。
同業?の方々との繋がりができることも期待しています。*1
さて、今日"Ari"さんからコメントを頂きました。
時間をキーに2つのテーブルを結合させようとしているのですが、片方のテーブルは5分きざみ、もう片方は30分きざみとなっています。時間をまるめる、mroundのような機能をご存知でしたら教えてください。
ちょっと実際の状況がイメージできなかったのですが、
上のような2つのテーブルを
こんな感じにしたいというようなことでしょうか?的外れだったらごめんなさい!
これをExcelのMROUND関数を使った風にして作成してみます。
まずはサンプルのデータ準備ですが、ここはかるーく流します。
- Table Creatorで適当にデータを作って(アルファベットを手入力しました)
- Counter Generationで数字を発生(例では開始を5、間隔を5で設定)
- Column Renameでカラム名を変更(Counter >> time1)
の3stepsでサンプルデータを作りました。
さてさて、本題のMROUND*2風の処理です。
Math Formulaノードを使います。
"ceil"は整数値への切り上げ関数です。例にも書かれているようにpi(円周率3.1415...)ならceilすると4を返してきます。Ariさんのケースだと、5刻みの数字を30刻み相当に直すような処理をしたいのかなーと想像したので、
30で割って、一旦丸めて(ceilを使用)、30をかけてます!
これでたぶんMROUND関数と同じような処理ができると思います。連続値(continuous)を離散値(discrete)に変換する場面に、私もつい最近遭遇しまして*3その経験を活用してみました。
実行後は下のようになります。
あとはjoinerで連結させるだけです。
Ariさん、コメントありがとうございました。稚拙な内容の当ブログですが、レスポンスがあるととても嬉しい気分になれます。お金儲けでもないですし、個人の活動なので、お気軽にコメント頂ければと思っています。
そして繰り返しになりますが、的外れだったら本当にごめんなさい。
それではまた次回!