## ----results = "asis", message = FALSE, warning = FALSE, eval = FALSE---------
#  library(datarobot)

## ----datetime Partition Base, echo = TRUE, eval = FALSE-----------------------
#  lending <- read.csv("https://s3.amazonaws.com/datarobot_public_datasets/10K_Lending_Club_Loans.csv")
#  partition <- CreateDatetimePartitionSpecification(datetimePartitionColumn = "earliest_cr_line",
#                                                    numberOfBacktests = 5)
#  proj <- StartProject(dataSource = lending,
#                       projectName = "Lending_Club_Time_Series",
#                       target = "is_bad",
#                       mode = "quick",
#                       partition = partition)

## ----backtest_specification_example, echo = TRUE, eval = FALSE----------------
#  backtest <- list()
#  # Dates are not project specific but rather example dates
#  backtest[[1]] <- CreateBacktestSpecification(0, ConstructDurationString(),
#                                               "1989-12-01", ConstructDurationString(days = 100))
#  backtest[[2]] <- CreateBacktestSpecification(1, ConstructDurationString(), "1999-10-01",
#                                               ConstructDurationString(days = 100))
#  # create desired partition specification
#  partition <- CreateDatetimePartitionSpecification("earliest_cr_line",
#                                                    numberOfBacktests = 2,
#                                                    backtests = backtest)

## ----model_iteration, echo = TRUE, eval = FALSE-------------------------------
#  # Request more granular information on the datetime partition specification
#  GetDatetimePartition(proj)
#  
#  # View blueprints associated with a project
#  bps <- ListBlueprints(proj)
#  
#  # View the the models within the model leaderboard
#  models <- ListModels(proj)
#  
#  # Retrieve a datetime model. There is now a new retrieval function specific to datetime partitioning
#  dt_model <- GetDatetimeModel(proj, models[[1]]$modelId)
#  
#  # Score all Backtests
#  scoreJobId <- ScoreBacktests(dt_model)
#  WaitForJobToComplete(proj, scoreJobId) # To make synchronous
#  
#  # now model information will also contain information about backtest scores
#  dtModelWithBt <- GetDatetimeModel(proj, dt_model$modelId)
#  
#  # Retrain a model using a different start & end date.
#  # One has to request a `Frozen` model to keep the hyper-parameters static and avoid lookahead bias.
#  # Within the context of deployment, this can be used to retrain a resulting model on more recent data.
#  UpdateProject(proj, holdoutUnlocked = TRUE) # If retraining on 100% of the data, we need to unlock the holdout set.
#  modelJobId_frozen   <- RequestFrozenDatetimeModel(dt_model,
#                                                    trainingStartDate = as.Date("1950/12/1"),
#                                                    trainingEndDate = as.Date("1998/3/1"))
#  new_dt_model_frozen <- GetDatetimeModelFromJobId(proj, modelJobId_frozen)
#  
#  # Train & retrieve a new date-time model based on rowcount
#  modelJobId  <- RequestNewDatetimeModel(proj, bps[[1]], trainingRowCount = 100)
#  new_dt_model <- GetDatetimeModelFromJobId(proj, modelJobId)
#  
#  # Train & retrieve a new date-time model based on duration
#  modelJobId   <- RequestNewDatetimeModel(proj, bps[[1]],
#                                          trainingDuration = ConstructDurationString(months=10))
#  new_dt_model <- GetDatetimeModelFromJobId(proj, modelJobId)

