首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spotfire - Sum() over

Spotfire - Sum() over
EN

Stack Overflow用户
提问于 2016-05-26 05:48:39
回答 1查看 1.1K关注 0票数 0

我正在尝试按帐户对最近30天内列指示器中的值求和。

我的表达式是:Sum(指示器) over (Intersect(id,LastPeriods(30,DATE),但结果不准确。

任何帮助都是非常感谢的。

示例数据如下:

代码语言:javascript
复制
    DATE    30DAYSBACK  ID  INDICATOR   RUNNING30   EXPECTED
    3/2/16  2/1/16  ABC 1   3   3
    3/2/16  2/1/16  ABC 1   3   3
    3/2/16  2/1/16  ABC 1   3   3  
    3/7/16  2/6/16  ABC 1   7   7
    3/7/16  2/6/16  ABC 1   7   7
    3/7/16  2/6/16  ABC 1   7   7
    3/7/16  2/6/16  ABC 1   7   7
    3/8/16  2/7/16  ABC 1   10  10
    3/8/16  2/7/16  ABC 1   10  10
    3/8/16  2/7/16  ABC 1   10  10
    3/10/16 2/9/16  ABC 1   12  12
    3/10/16 2/9/16  ABC 1   12  12
    3/14/16 2/13/16 ABC 1   13  13
    3/15/16 2/14/16 ABC 1   14  14
    3/16/16 2/15/16 ABC 1   15  15
    3/21/16 2/20/16 ABC 1   16  16
    3/22/16 2/21/16 ABC 1   17  17
    3/23/16 2/22/16 ABC 1   19  19
    3/23/16 2/22/16 ABC 1   19  19
    3/25/16 2/24/16 ABC 1   20  20
    3/29/16 2/28/16 ABC 1   22  22
    3/29/16 2/28/16 ABC 1   22  22
    3/30/16 2/29/16 ABC 1   27  27
    3/30/16 2/29/16 ABC 1   27  27
    3/30/16 2/29/16 ABC 1   27  27
    3/30/16 2/29/16 ABC 1   27  27
    3/30/16 2/29/16 ABC 1   27  27
    3/31/16 3/1/16  ABC 1   29  29
    3/31/16 3/1/16  ABC 1   29  29
    4/1/16  3/2/16  ABC 1   31  31
    4/1/16  3/2/16  ABC 1   31  31
    4/4/16  3/5/16  ABC 1   32  29
    4/5/16  3/6/16  ABC 1   33  30
    4/13/16 3/14/16 ABC 1   34  27
    4/13/16 3/14/16 ABC 1   34  27
    4/13/16 3/14/16 ABC 1   34  27
    4/13/16 3/14/16 ABC 1   34  27
    4/15/16 3/16/16 ABC 1   35  24
    4/20/16 3/21/16 ABC 1   31  26
    4/20/16 3/21/16 ABC 1   31  26
    4/20/16 3/21/16 ABC 1   31  26
    4/25/16 3/26/16 ABC 1   31  25
    4/25/16 3/26/16 ABC 1   31  25
    4/25/16 3/26/16 ABC 1   31  25
    4/26/16 3/27/16 ABC 1   31  26
    4/27/16 3/28/16 ABC 1   34  29
    4/27/16 3/28/16 ABC 1   34  29
    4/27/16 3/28/16 ABC 1   34  29
    4/27/16 3/28/16 ABC 1   34  29
    4/28/16 3/29/16 ABC 1   35  30
EN

回答 1

Stack Overflow用户

发布于 2016-06-17 04:03:53

我不能在Spotfire中确定合适的解决方案。但是,我能够编写一些R代码,允许将日期和指标列传递给它,对过去30天的指标求和,然后将其作为列返回。

代码如下:

代码语言:javascript
复制
record.date <-as.Date(date.column, "%m/%d/%Y")
indicator.vector <- indicator.column

num.entry <- length(record.date)
running.thirty <- vector(length=num.entry)
count <- 0

for(i in 1:num.entry){
  date.test <- record.date[i]
  for(j in 1:num.entry){
    if(record.date[j] >= date.test-30 ){
      if(record.date[j] <= date.test){
        count <- count + indicator.vector[j]
      }
    }
  }
  running.thirty[i] <- count
  count <- 0  
}

output<-running.thirty

使用Tools >>寄存器数据函数

(1)插入脚本

(2)创建两个入参:

input parameters

(3)创建输出参数:

output parameter

注意:我认为在接近数据集的末尾时,您的期望值中存在一些错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37448209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档