KNIME相关视频教程,请移步B站,搜索“星汉长空”,多谢支持!
步骤1. 如图所示,在KNIME中加入Table Creator节点。
步骤2. 在Table Creator节点中,双击编辑单元格,填入一列测试数据,其中含有三种属性值,A、B和C。但是它们的顺序和数量是随机的。
********************************************************************************
问题:如何为相同的属性值,按照出现的顺序赋予序号1,2,3...
********************************************************************************
思路:首先想到的就是分组排序功能,使用Rank节点,依据该属性值分组,
接下来在分组内部依据出现的次序,或者其他的属性,比如行索引进行排序。********************************************************************************
步骤3. 拖入Category To Number节点,目的是新建一个属性用于组内排序,方法并不唯一。
(注:这里使用Math formula节点获取row index,或者将原来的列复制一份都是可以的。Category To Number节点的作用是将原来的属性值按类别转换为数字,注意可以设置类别的起始序号、步长及最大类别数等等。)
步骤4. 拖入Rank节点,在Grouping Attributes里面选原始列,也就是依据原始属性值分组。
步骤5. 在Rank节点里,Ranking Attributes里选择新建的属性列,并选择Order为升序排列。
步骤6. 在Rank节点里,Ranking Mode选Ordinal;Other Options里勾选保持行顺序。
步骤7. 执行工作流,可以看到原始数据列属性值的重复部分,依据出现的先后顺序赋予了序号。
解释1. 何为KNIME?KNIME数据分析平台是一款强大开源的数据挖掘软件平台,可以固化数据处理的流程,在人与人,人与机器之间进行传递。
解释2. 为何Ranking Mode选Ordinal?排序序号有几种模式,比如并列第二名,可能序号都为2,也可能被按照出现顺序先后被赋予序号2、3,这都是需要根据需求灵活选择的,三种模式对于序号的影响,大家可以参考官方帮助文档的说明,也可以手动尝试,来理解序号模式间的细微差别。
解释3. 不要忘了保持行的原始顺序,这在很多节点当中都有相应的选项,如果不进行勾选,KNIME会对结果按照预设的逻辑进行排序,那么结果可能与我们的预期不符。