我有以下时间序列,行Nr列只是为了清楚起见。
TIME A B Row Nr
09:00:00.009 -2 1 1
09:00:00.009 0 -1 2
09:00:03.051 1 -2 3
09:00:03.053 -1 1 4
09:00:03.220 -3 2 5
09:00:03.222 -5 2 6
09:00:03.224 3 -4 7
09:00:03.225 2 -3 8
09:00:03.228 -1 0 9
示例 对于具有更改列A = 0和B = 1的最小值的测试,我们从列A开始,它将如下所示:
Row nr:
以最小参数A = 0和B = 1运行后,Sum为4。如何找到导致最大总和的最小A和B的参数?
我保留下面问题的旧解释。这将在很多时候在大型数据集上完成。
我需要在经历时间系列时在A,B列上。我可以随时从A列移动到B,然后将A列中该行的值添加到总和中,然后我可以在此后的任何一行从B列转到A并将B值添加到我的总和中
我可以在列之间移动尽可能多的时间,而且我不会以最大的总和来结束。
我现在正在寻找的是两个最小值,一个是使我从A移动到B的最小值,另一个是从B移动到A的最小值。
我正在寻找的是,是否有一些软件包可以解决这类问题,或者可能会提供一些提示,以寻求更好的解决方案而不是暴力破解。我会做很多,所以表现是一个因素._
答案 0 :(得分:1)
如果你只想要行的最大值之和,那就是:
with( dfrmname , sum( pmax(A ,B) ) # should be quite fast.
如果你想构建一个累积和,那就是:
with( dfrmname , cumsum( pmax(A ,B) )