Формат даты пророка R

#r #date-format #facebook-prophet

#r #формат даты #facebook-prophet

Вопрос:

 year_month   amount_usd
201501       -390217.24
201502       230944.09
201503       367259.69
201504       15000.00
201505       27000.21
201506       38249.65

df <- structure(list(year_month = 201501:201506, amount_usd = c(-390217.24, 
230944.09, 367259.69, 15000, 27000.21, 38249.65)), class = "data.frame", row.names = c(NA, 
-6L))
  

Я хочу привести его к формату ДД / ММ / ГГГГ для удобства использования в коде прогнозирования пророка.

это то, что я пробовал до сих пор.

 for (loopitem in loopvec){
  df2 <- subset(df, account_id==loopitem)
  df3 <- df2[,c("year_month","amount_usd")]
  df3$year_month <- as.Date(df3$year_month, format="YYYY-MM", origin="1/1/1970")
  try <- prophet(df3, seasonality.mode = 'multiplicative')
}
  

Ошибка в fit.prophet(m, df, …) :
Фрейм данных должен содержать столбцы ‘ds’ и ‘y’ с датами и значениями соответственно.

Комментарии:

1. Пожалуйста, отредактируйте свой заголовок (все заглавные буквы) и вставьте данные примера в виде текста, а не изображения.

Ответ №1:

Вам нужно вставить номер дня (я использую только первый) в значения year_month, затем вы можете использовать ymd() функцию из lubridate для преобразования столбца в объект даты.

 library(dplyr)
library(lubridate)

mutate_at(df, "year_month", ~ymd(paste(., "01")))

  year_month amount_usd
1 2015-01-01 -390217.24
2 2015-02-01  230944.09
3 2015-03-01  367259.69
4 2015-04-01   15000.00
5 2015-05-01   27000.21
6 2015-06-01   38249.65
  

Комментарии:

1. И пророку нужен столбец ds и y , поэтому вам нужно будет изменить имена столбцов, чтобы это сработало.