R обнуление общей суммы в начале каждого года

У меня есть фрейм данных с кучей данных о пожертвованиях. Я беру данные и размещаю их по времени от самых старых до самых последних подарков. Затем я добавляю столбец, содержащий совокупную сумму подарков с течением времени. Данные содержат данные за несколько лет, и я искал хороший способ сбросить cumsum на 0 в начале каждого года (год начинается и заканчивается 1 июля для финансовых целей).

Вот как это сейчас:

id        date          giftamt      cumsum()
005       01-05-2001     20.00        20.00
007       06-05-2001     25.00        45.00
009       12-05-2001     20.00        65.00
012       02-05-2002     30.00        95.00
015       08-05-2002     50.00       145.00
025       12-05-2002     25.00       170.00
...          ...          ...         ...

вот как я хотел бы, чтобы это выглядело:

id        date          giftamt      cumsum()
005       01-05-2001     20.00        20.00
007       06-05-2001     25.00        45.00
009       12-05-2001     20.00        20.00
012       02-05-2002     30.00        50.00
015       08-05-2002     50.00        50.00
025       12-05-2002     25.00        75.00
...          ...          ...          ...

Есть предложения?

ОБНОВЛЕНИЕ:

Вот код, который наконец-то сработал благодаря Себу:

#tweak for changing the calendar year to fiscal year
df$year <- as.numeric(format(as.Date(df$giftdate), format="%Y"))
df$month <- as.numeric(format(as.Date(df$giftdate), format="%m"))
df$year <- ifelse(df$month<=6, df$year, df$year+1)

#cum-summing :)
library(plyr)
finalDf <- ddply(df, .(year), summarize, cumsum(as.numeric(as.character(giftamt))))
5
задан screechOwl 16 December 2011 в 20:22
поделиться