Преобразовать индекс столбца датафрейма в годмон - PullRequest
0 голосов
/ 12 марта 2020

У меня есть следующий фрейм данных

data_frame <- data.frame(sku = c("A","B","C"), forecast1 = c(1,2,3), forecast2 = c(4,5,6), forecast3 = c(7,8,9))

Я хочу преобразовать имена столбцов де в последовательность дат в формате yearmon и собрать их в следующей форме:

colnames(data_frame)[2:4] <- c("2020_03","2020_04","2020_05")
gather(data_frame,"yearmon","forecast",2:4)

Я попробовал следующее:

months <- list()
date_origin <- as.yearmon("2020-02")
for (i in 1:3){
  months[i] <- as.yearmon(months + i/12)
}
colnames(df_prevision)[c(2:84] <- months
df_prevision_gather <- gather(df_prevision,"month","forecast",2:4)

1 Ответ

1 голос
/ 12 марта 2020

Создайте имена столбцов в форме гггг-мм, выполните gather и преобразуйте столбец с именем yearmon, используя as.yearmon:

nc <- ncol(data_frame)
ym <- seq(as.yearmon("2020-03"), length = nc-1, by = 1/12)
names(data_frame)[-1] <- format(ym, "%Y-%m")

data_frame %>%
  gather("yearmon", "forecast", -1) %>%
  mutate(yearmon = as.yearmon(yearmon))

, получив:

  sku  yearmon forecast
1   A Mar 2020        1
2   B Mar 2020        2
3   C Mar 2020        3
4   A Apr 2020        4
5   B Apr 2020        5
6   C Apr 2020        6
7   A May 2020        7
8   B May 2020        8
9   C May 2020        9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...