Следующее решение должно работать. Требуется data.table
и lubridate
. В Spotfire вы можете установить оба из них, используя Инструменты -> Инструменты TERR -> Управление пакетами. Настройка функции данных в Spotfire имеет множество ресурсов (https://datashoptalk.com/spotfire-data-functions-terr-basics/)
library(lubridate)
library(data.table)
dt <- data.table(Initiative = c('A', 'B') ,
start_date = c(as.Date('2017/1/1'), as.Date('2015/5/1')),
Savings = c(240, 120)
)
new_dt <- dt[, .(
Date = seq.Date(start_date, as.Date(start_date %m+% months(11)), by = 'month'),
Monthly_Savings = Savings / 12), by = Initiative]
new_dt
Initiative Date Monthly_Savings
1: A 2017-01-01 20
2: A 2017-02-01 20
3: A 2017-03-01 20
4: A 2017-04-01 20
5: A 2017-05-01 20
6: A 2017-06-01 20
7: A 2017-07-01 20
8: A 2017-08-01 20
9: A 2017-09-01 20
10: A 2017-10-01 20
11: A 2017-11-01 20
12: A 2017-12-01 20
13: B 2015-05-01 10
14: B 2015-06-01 10