У меня есть данные о ID
и соответствующем amount
за несколько лет. Что-то вроде этого:
ID <- c(rep("A", 5), rep("B", 7), rep("C", 3))
amount <- c(sample(1:10000, 15))
Date <- c("2016-01-22","2016-07-25", "2016-09-22", "2017-10-22", "2017-01-02",
"2016-08-22", "2016-09-22", "2016-10-22", "2017-08-22", "2017-09-22", "2017-10-22", "2018-08-22",
"2016-10-22","2017-10-25", "2018-10-22")
Теперь я хочу проанализировать каждый год каждого ID
. В частности, меня интересует amount
. Во-первых, я хочу знать общую сумму за каждый год. Затем я также хочу узнать общую сумму за первые 11 месяцев каждого года, первые 10 месяцев каждого года, первые 9 месяцев каждого года и первые 8 месяцев каждого года. Для этой цели я рассчитал cumSum
за каждые ID
за year
следующим образом:
myData <- cbind(ID, amount, Date)
myData <- as.data.table(myData)
# createe cumsum per ID per Year
myData$Date <- as.Date(myData$Date, format = "%Y-%m-%d")
myData[order(clientID, clDate)]
myData[, CumSum := cumsum(amount), by =.(ID, year(Date))]
Как суммировать data.table
так, чтобы я получал столбцы amount9month
, amount10month
, amount11month
для каждого идентификатора в каждом году?