我有一个数据集,在某种程度上,下一个奇异数据会添加到前一行数据的一行,而每列的数据,这意味着, 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 ...... 除了第一个项目之前的每个项目都减去之前的项目。
1 12 2 3
答案 0 :(得分:1)
尝试使用lag series
运算符,它肯定会有效!要获得此运营商,您应该从RM市场安装系列扩展。
此运算符的作用 - 他复制所选属性并将示例集的每一行推送到一个点,因此ID为1的行将获得ID为2的副本(您还可以指定滞后值)。之后,您可以使用Generate Attributes
从另一个值中减去一个值。
答案 1 :(得分:0)
我认为lag()
是您问题的答案:
select (case when id = 1 then col
else col - lag(col) over (order by id)
end)
但是,样本数据会澄清这个问题。
答案 2 :(得分:0)
在RapidMiner中,系列扩展中包含Differentiate
运算符(默认情况下不安装,需要从RapidMiner Marketplace下载)。这可用于计算相邻示例中属性之间的差异。