"[解决了]在嵌套循环中传递变量"

scepxkoscepxko 成员职位:15Maven
2019年6月编辑 帮助
你好,

我想使用黑名单过滤表的行

黑名单的结构是一列,包含姓名和一列数字,即:

名字
123
562
588

要过滤的表的结构是三列。
第一列包含数字,第二列和第三列包含各种内容,即:

A - B - C
123文本文本
123文本文本
562文本文本
455文本文本


在此过程中,以“123”和“562”开头的行将被删除,因为这些数字在黑名单中。

在一个成功的过程之后,结果应该是:

A - B - C
455文本文本


逻辑上有两个循环:选择一个列入黑名单的数字,检查是否出现在表格的每一行,如果是积极的就采取行动,然后选择下一个列入黑名单的数字。


当我对黑名单使用无循环(即:参数字符串:%{loop_attribute}=123)进行测试时,直接使用操作符“过滤示例”确实没有任何问题。

当我实现黑名单的循环时(使用loop_attribute2)(操作符“过滤示例”,参数字符串%{loop_attribute}=%{loop_attribute2}),没有任何工作。

我尝试了另一种解决方案,我在另一篇文章中读到,使用操作符“生成属性”。

我已经在上面花了几个小时,尝试了很多方法,但还是卡住了。
结果表为空。
属性“Name”的值(来自第一个循环)似乎在子进程中不知怎么丢失了。我得到一个空表或一个未过滤的表(如果我反转过滤器)。我错过了一些“宏”操作符…但是什么?

也许清醒的头脑能帮到我?

先谢谢你
亚历克斯

下面是目前为止的代码

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<过程version = " 5.2.008 " >
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文




<列出关键= "注释" >

< / >列表
<列出关键= " data_set_meta_data_information " >

< / >列表
< /操作符>





<列出关键= "注释" >

< / >列表
<列出关键= " data_set_meta_data_information " >



< / >列表
< /操作符>




<列出关键= " function_descriptions " >

< / >列表
< /操作符>



< /操作符>




< /操作符>







> < /过程
< /操作符>



< /操作符>








> < /过程
< /操作符>





> < /过程
< /操作符>
> < /过程



标记:

最佳答案

  • scepxkoscepxko 成员职位:15Maven
    解决方案接受
    你好,马吕斯,

    它是如此迅速地实现,我感到有点惭愧:-)
    非常感谢。

    “集减”从主列表中删除黑名单中的元素。
    最后,我倾向于保留黑名单上的元素,删除其他元素。操作人员“机密数据库”给出了结果。

    这里是其他Rapidminer学生的“Set Minus”的实现:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <过程version = " 5.2.008 " >
    > <上下文
    <输入/ >
    <输出/ >
    <宏/ >
    > < /上下文




    <列出关键= "注释" >

    < / >列表
    <列出关键= " data_set_meta_data_information " >

    < / >列表
    < /操作符>


    <列出关键= "注释" >

    < / >列表
    <列出关键= " data_set_meta_data_information " >



    < / >列表
    < /操作符>







    > < /过程
    < /操作符>
    > < /过程

答案

  • MariusHelfMariusHelf RapidMiner认证专家、会员职位:1869年独角兽
    你好,

    只需加载两个表,将过滤器列的角色设置为“id”并使用set Minus操作符。这将大大简化您的流程:)

    最好的,马吕斯
登录注册置评。