我正在尝试在rapidminer中过滤一组示例商业属性。许多属性都是重复的,因为属性事务历史记录包含在数据表中,并且许多属性在数据表期间被多次出售。我想要做的是过滤掉每个属性的最新事务。
我无法弄清楚如何使用最近的交易日期过滤除记录以外的所有记录。任何帮助,将不胜感激。
答案 0 :(得分:0)
您应该发布一个独立的可重现示例,其中包含数据以显示您到目前为止所尝试的内容。
如果没有这个,一般的建议可能就是这些。使用Aggregate
运算符查找给定属性的最大日期,然后使用Join
运算符将原始示例集内连接到包含最大值的示例集。
以下是使用可能适用于您的情况的Iris数据集的玩具示例。
<?xml version="1.0" encoding="UTF-8"?><process version="7.4.000">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="7.4.000" expanded="true" name="Process">
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="7.4.000" expanded="true" height="68" name="Retrieve Iris" width="90" x="112" y="187">
<parameter key="repository_entry" value="//Samples/data/Iris"/>
</operator>
<operator activated="true" class="aggregate" compatibility="7.4.000" expanded="true" height="82" name="Aggregate" width="90" x="313" y="187">
<list key="aggregation_attributes">
<parameter key="a1" value="maximum"/>
</list>
<parameter key="group_by_attributes" value="label"/>
</operator>
<operator activated="true" class="join" compatibility="7.4.000" expanded="true" height="82" name="Join" width="90" x="514" y="187">
<parameter key="use_id_attribute_as_key" value="false"/>
<list key="key_attributes">
<parameter key="label" value="label"/>
<parameter key="a1" value="maximum(a1)"/>
</list>
</operator>
<connect from_op="Retrieve Iris" from_port="output" to_op="Aggregate" to_port="example set input"/>
<connect from_op="Aggregate" from_port="example set output" to_op="Join" to_port="right"/>
<connect from_op="Aggregate" from_port="original" to_op="Join" to_port="left"/>
<connect from_op="Join" from_port="join" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>