2016-07-13 48 views
-2

我有一个数据集,其中以某种方式将下一个单数的数据是在对于一行中的先前的数据的顶部加入,而每列的,这意味着, 行与ID 1是原始纯数据,但例如ID行10已将前9个数据集中的数据添加到其自身中...从前面减去每个下一列值?

我现在想要的是为每个不同的项目获取原始纯数据,这意味着对于每个ID,如何从所有数据中减去所有数据ID,10?我将不得不这些。减去前一个,对ID 9等等...

我想做到这一点无论在SQL Server或Rapidminer,我用这些工具的工作,任何想法? 这里是一个示例:

ID col1 col2 col3 
1 12 2  3 
2 15 5  5 
3 20 8  8 

所以对于项目ID为3的真正正确的数据是不是20,如图8所示,8是(20-15),(8-5),(8-5),使其5,3,3 ... 减去先前的后面为除第一个每个项目..

+0

请编辑您的问题,并提供样本数据和预期的结果。 –

回答

0

我觉得lag()是回答你的问题:

select (case when id = 1 then col 
      else col - lag(col) over (order by id) 
     end) 

但是,示例数据会澄清问题。

0

在RapidMiner没有包含在系列扩展(这是不是默认安装的,需要从RapidMiner市场下载)的Differentiate操作。这可以用来计算相邻示例中属性之间的差异。

1

尝试一下与lag series运营商,它将为确保工作!要获得该运营商,您应该安装RM市场的系列扩展。

这个操作符做了什么 - 他复制选定的属性并将示例集的每一行都推送给一个点,所以ID 1的行获得ID 2等的副本(您也可以指定滞后值)。之后,您可以用Generate Attributes减去另一个值。