Самый простой способ создания индикаторных переменных для изменения временных рядов в R - PullRequest
1 голос
/ 27 января 2020

У меня есть 14 миллионов строк данных о продуктах, тарифных ставках, объемах сделок и комбинациях год-месяц в следующем формате:

df <- as.data.frame(matrix(c(1220, "2013-1", 10011900, 29307, .1,
                   1220, "2013-2", 10011900, 28202, .1,
                   1220, "2013-3", 10011900, 22383, .15,
                   1220, "2013-4", 10011900, 21303, .15,
                   1220, "2013-5", 10011900, 21201, .15,
                   1220, "2013-1", 10019900, 9960, .12,
                   1220, "2013-2", 10019900, 10043, .12,
                   1220, "2013-3", 10019900, 11001, .1,
                   1220, "2013-4", 10019900, 10997, .1,
                   1220, "2013-5", 10019900, 12038, .1), 
                 ncol = 5, byrow = T))
colnames(df) <- c("country", "date", "product", "value", "rate" )

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

df_transformed <- as.dataframe(matrix(c(1220, "2013-1", 10011900, 29307, .1, -2, 
                                        1220, "2013-2", 10011900, 28202, .1, -1,
                                        1220, "2013-3", 10011900, 22383, .15, 0, 
                                        1220, "2013-4", 10011900, 21303, .15, 1, 
                                        1220, "2013-5", 10011900, 21201, .15, 2,
                                        1220, "2013-1", 10019900, 9960, .12, -2,
                                        1220, "2013-2", 10019900, 10043, .12, -1,
                                        1220, "2013-3", 10019900, 11001, .1, 0,
                                        1220, "2013-4", 10019900, 10997, .1, 1,
                                        1220, "2013-5", 10019900, 12038, .1, 2)))
colnames(df_transformed) <- c("country", "date", "product", "value", "rate", "months_since_change")

Я не уверен, как наилучшим образом найти изменение тарифной переменной и создать на ее основе новый столбец.

Спасибо за помощь!

...