新来的,如果我没有正确地做到这一点,那就减少一些懈怠,但我有一个让我完全难过的问题,我找不到任何其他帮助。
我尝试在Spotfire中创建一个计算列,该列将代表某些情况下所需的设备数量,但如果这些情况在未来发生变化,则不会随着时间的推移而减少。
我的数据集包括多个位置的多个来源,这些来源的流量随时间变化。这些来源在不同的时间点上线,每个位置的所有来源的总流量决定了所需设备的数量。每个来源都有每天的流量数据。我的数据集庞大,并且拥有数百个位置和来源,多年的数据。我试图预测未来的设备需求,并且由于源速率随时间变化,设备需求会减少和增加,但设备在速率降低时仍然存在。我有一个计算列,告诉我在给定的一天,按位置需要多少设备,但是想要一个计算的列(相对于可视化中的一个custon表达式),根据需要上升,但永远不会下降,随着时间的推移。通过这种方式,我可以准确预测未来设备的总需求。
我使用DenseRank按位置和日期对来源进行排名以创建列" Rank"然后我使用" Ceiling"和"总和相交"创建列EquipCount,然后" IF"用于创建具有修剪数据集的列的语句,因此在聚合可视化中不会多次计数。 " EquipRate"是每件装备可以处理的流程,是本地定义的属性:
DenseRank([Source],"ties.method=first",[Location],[Date])
Ceiling(Sum([FlowRate]) over (Intersect([Location],[Date]))/${EquipRate})
if([Rank]=1,[EquipCount],null)
下面的示例数据集(继续通过多个来源,位置和日期):
SourceName|Location|Date |FlowRate
Source 1 |Plant 1 |1/1/2017 |100
Source 1 |Plant 1 |1/2/2017 |200
Source 1 |Plant 1 |1/3/2017 |50
Source 1 |Plant 1 |1/4/2017 |100
Source 2 |Plant 1 |1/8/2017 |100
Source 2 |Plant 1 |1/9/2017 |200
Source 2 |Plant 1 |1/10/2017 |50
Source 2 |Plant 1 |1/11/2017 |100