跳到主要内容

🔎 KNIME 节点巡礼 -- column expressions(列表达式)节点

· 阅读需 3 分钟

重要★★★ 难度★☆☆ column expressions(列表达式)节点。 列表达式节点是一个综合了 String Manipulation(字符串操作)节点以及 Math Formula(数学公式)节点,甚至 Rule Engine(规则引擎)节点等功能的一个综合性节点。

复习 String Manipulation(字符串操作)节点

重要★★★ 难度★☆☆ String Manipulation(字符串操作)节点比较重要,也相对比较简单,如图5-12所示。如果需要的操作比较复杂,则可以对函数进行嵌套使用,比如,length(strip($column1$) 就是对 $column1$ 列的字符串进行去除空格后,然后计算其长度。具体的函数如 strip、length 这些基础的字符串操作,可以在右上方的窗格中找到说明。

《KNIME 视觉化数据分析》

复习 Math Formula(数学公式)节点

重要★★★ 难度★☆☆ Math Formula(数学公式)节点比较重要,也相对比较简单,如图5-11所示。如果在计算中需要某一列的值,那么我们可以在右中的 Expression 窗格中单击想要添加列名的位置(即鼠标光标的位置),然后双击左上方窗格中需要的列名,这个列名就自动出现在前面光标的位置上了;而如果想要使用流变量(Flow Variable)中的值,那么双击左下方窗格中的流变量名称即可。值得注意的是,某些计算如果在数学层面不合理(比如除数分母为0),那么单元格的结果将是一个红色的问号[代表缺失值(missing value)],但并不会在 KNIME 的 Console 窗格中显示出来。换句话说,需要我们自己确认输入数据是否合理。

column expressions(列表达式)节点

column expressions(列表达式)节点位于 KNIME Labs 目录下。

如标识编号的界面图片所示,1 的位置用来写表达式,2 的位置用来设置表达式的结果类型,3 的位置设置是否以集合的形式返回结果,4 的位置用来选择是否替换原表中的某一列,5 的位置设置列名,6 的位置用来增添新的表达式,7 的位置用来测试表达式结果(会以第一行为例)。

在写表达式的时候,可以使用很多的函数, 如图显示了所支持的函数类型。

对于一些简单的函数和使用 String Manipulation 与 Math Formula,并无二致。对于一些复杂的条件还可以使用 if-else 甚至是 for, while 等语句,图中就显示了一个 if-else (如果怎样怎样,就怎样怎样)的语句示例。

你现在在工作流中可以将几个功能相近的节点使用这一个节点来处理了。