Разделение нерегулярных временных рядов на регулярные среднемесячные значения - R

Чтобы установить сезонное влияние на потребление энергии, мне необходимо согласовать имеющуюся у меня информацию об использовании энергии из базы данных выставления счетов с месячными температурами.

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

   acct amount      begin        end days
1  2242  11349 2009-10-06 2009-11-04   29
2  2242  12252 2009-11-04 2009-12-04   30
3  2242  21774 2009-12-04 2010-01-08   35
4  2242  18293 2010-01-08 2010-02-05   28
5  2243  27217 2009-10-06 2009-11-04   29
6  2243    117 2009-11-04 2009-12-04   30
7  2243  14543 2009-12-04 2010-01-08   35

Я хотел бы выяснить, как заставить эти несколько нерегулярные временные ряды (для каждой учетной записи) получить среднюю сумму в день в течение каждого месяца, охватываемого в каждом счете, таким образом, чтобы: I '

   acct amount      begin        end days avgamtpday
1  2242  11349 2009-10-01 2009-10-31   31          X
2  2242  12252 2009-11-01 2009-11-30   30          X
3  2242  21774 2009-12-01 2010-12-31   31          X
4  2242  18293 2010-01-01 2010-01-31   31          X
4  2242  18293 2010-02-01 2010-02-28   28          X
5  2243  27217 2009-10-01 2009-10-31   31          X
6  2243    117 2009-11-01 2009-11-30   30          X
7  2243  14543 2009-12-01 2009-12-31   30          X
7  2243  14543 2010-01-01 2010-01-31   31          X

Я довольно независим от того, какой инструмент может это сделать, поскольку я должен сделать это только один раз.

Дополнительным недостатком является то, что таблица имеет длину около 150 000 строк, что на самом деле не так уж велико по большинству стандартов, но достаточно велико, чтобы затруднить решение с использованием петель в R. Я'Я исследовал использование пакетов zoo, xts и tempdisagg в R. Я начал писать действительно уродливый цикл, который будет разделять каждый счет, затем создавать одну строку для каждого месяца в существующем счете, а затем использовать tapply () для суммирования по действиям и месяцам. , но, честно говоря, не могне вижу, как сделать это эффективно.

В MySQL ямы пробовали это:

создать или заменить представление v3 как выбрать 1 n объединить все выбрать 1 объединить все выбрать 1;

создать или заменить представление v в качестве select 1 n из v3 a, v3 b union all select 1;

установить @n = 0;

удалить таблицу, если существует календарь; создать настольный календарь (дата даты первичный ключ);

вставить в календарь

выберите актерский состав ('2008-1-1' + интервал @n: = @ n + 1 день как дата) как dt от v a, v b, v c, v d, v e, v;

выберите действие, сумму, начало, конец, billAmtPerDay, сумму (billAmtPerDay), MonthAmt, количество () Дни, сумма (billAmtPerDay) / количество () AverageAmtPerDay, год (dt), месяц (dt) ОТ (выбрать *, сумма / дни billAmtPerDay из счетов b календарь внутреннего соединения c на dt между началом и концом и началом <> dt) x сгруппировать по действию, количеству, началу, концу, billAmtPerDay, году (dt), месяцу (dt);

Но по причинам я нене понимаю, мой сервер неМне нравится эта таблица, и она зацикливается на внутреннем соединении, даже когда я выполняю различные вычисления. Я'я исследую, есть ли какие-либо временные ограничения памяти на это.

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос