2016-07-13 51 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減去另一個值。