stack_data <- stack_data %>% data.table()
file_summary_dt <- data.table()
for (i in 1:iternum) {
iter_dt <- stack_data[Iteration == i]
#iter_dt <- iter_dt %>% data.table()
iter_dt[, gen_cumsum := lapply(.SD, cumsum), by = .(Date, HE), .SDcols = "gen"]
iter_dt[, non_full_gen_indicator := (gen_cumsum >= load) * 1 * (Stacking_Order)]
iter_dt[, partial_gen_indicator := lapply(.SD, find_min_gtzero_func), .SDcols = "non_full_gen_indicator", by = .(Date, HE)]
iter_dt[, no_sales_indicator := lapply(.SD, sum), .SDcols = "partial_gen_indicator", by = .(Date, HE)]
iter_dt[, partial_gen_actually_full_gen_to_sales_indicator := (partial_gen_indicator == Stacking_Order) * 1 * ((gen - (gen_cumsum - load)) == 0)*1]
iter_dt[, partial_gen_actually_full_gen_to_nl_indicator := (partial_gen_indicator == Stacking_Order) * 1 * ((gen - (gen_cumsum - load)) == gen)*1]
iter_dt[, full_gen_to_nl := (no_sales_indicator == 0 | (Stacking_Order < partial_gen_indicator) | partial_gen_actually_full_gen_to_nl_indicator == 1) * 1 * gen]
iter_dt[, partial_gen_to_nl := (partial_gen_indicator == Stacking_Order & partial_gen_actually_full_gen_to_nl_indicator == 0 & partial_gen_actually_full_gen_to_sales_indicator == 0) * 1 * (gen - (gen_cumsum - load))]
iter_dt[, partial_gen_to_sales := (partial_gen_to_nl != 0) * 1 * ( gen - partial_gen_to_nl)]
iter_dt[, full_gen_to_sales := ((Stacking_Order > partial_gen_indicator & no_sales_indicator > 0) | (partial_gen_actually_full_gen_to_sales_indicator == 1)) * 1 * gen]
iter_dt[, total_gen_to_nl := full_gen_to_nl + partial_gen_to_nl]
iter_dt[, total_gen_to_sales := partial_gen_to_sales + full_gen_to_sales]
iter_dt[, total_gen_to_nl_cumsum := lapply(.SD, cumsum), by = .(Date, HE), .SDcols = "total_gen_to_nl"]
iter_dt[, max_total_gen_to_nl_cumsum := lapply(.SD, max), by = .(Date, HE), .SDcols = "total_gen_to_nl_cumsum"]
iter_dt[, spot_purch := (max_total_gen_to_nl_cumsum < load) * 1 * (load - max_total_gen_to_nl_cumsum)]
# iter_dt <- iter_dt %>% mutate(ATC_Indicator = 1, OnPk_Indicator = ifelse(PEAK == "ONPEAK", 1, 0), OffPk_Indicator = ifelse(PEAK == "OFFPEAK", 1,0))
# iter_dt$PEAK <- NULL
data_col_names <- c("gen", "load", "total_gen_to_nl", "total_gen_to_sales", "spot_purch")
iter_summary_dt <- rbind(iter_dt[ATC_Indicator == 1, lapply(.SD, sum), by = .(Year, Month, Entity, Stacking_Order, Iteration), .SDcols = data_col_names][, Timepd := "ATC"],
iter_dt[OnPk_Indicator == 1, lapply(.SD, sum), by = .(Year, Month, Entity, Stacking_Order, Iteration), .SDcols = data_col_names][, Timepd := "OnPk"],
iter_dt[OffPk_Indicator == 1, lapply(.SD, sum), by = .(Year, Month, Entity, Stacking_Order, Iteration), .SDcols = data_col_names][, Timepd := "OffPk"])
file_summary_dt <- rbind(iter_summary_dt, file_summary_dt)
print(paste("Iteration # " , i , " finished.", sep = ""))
}
total_summary_dt <- file_summary_dt
total_summary_dt <- total_summary_dt[order(Iteration, Year, Month, Stacking_Order)]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.