2016-05-25 2 views
0

Я пытаюсь суммировать значения в столбце INDICATOR за последние 30 дней с DATE по счету.Spotfire - Sum() over

Мое выражение: Sum ([INDICATOR]) over (Intersect ([id], LastPeriods (30, [DATE]))), но результаты неточны.

Любая помощь приветствуется.

Пример данных ниже:

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 
+1

Можете ли вы приложить образец данных? – scsimon

+0

Спасибо за набор данных, однако в нем отсутствует указатель '[INDICATOR]' – scsimon

+0

Извините! [ИНДИКАТОР] - фактически просто значение 1 прямо вниз. (Обозначенная выше ... рассматривается как «IDENTIFIER» выше.) –

ответ

0

я wan't в состоянии определить подходящее решение в Spotfire. Тем не менее, я смог написать R-код, который позволяет передавать столбцы Date и Indicator, суммирует индикатор за последние 30 дней, а затем возвращает это как столбец.

Вот код:

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 

Используйте инструменты >> Функция Регистр данных

(1) Вставьте скрипт

(2) Создание двух входных параметров:

input parameters

(3) Создать выходной параметр :

output parameter

Примечание: Я думаю, что есть некоторые ошибки в ваших ожидаемых значений вблизи конца набора данных.

Смежные вопросы