R/transform_get_mon_arrivals.R

#' Transforming a dataframe received by get_mon_arrivals-function
#'
#'
#'
#' @param df_arrivals The dataframe generated by the get_mon_arrivals()-function of the simmer-package
#' @export
#' @import sqldf
transform_get_mon_arrivals <- function(df_arrivals)
{
  sql <- paste0('SELECT name, MIN(start_time) AS start_time, MAX(end_time) as end_time, SUM(activity_time) AS activity_time, finished, replication FROM ', deparse(substitute(df_arrivals)) ,' a WHERE start_time = (SELECT MIN(start_time) FROM ', deparse(substitute(df_arrivals)) ,' b WHERE a.name = b.name) OR end_time = (SELECT MAX(end_time) FROM ', deparse(substitute(df_arrivals)) ,' b WHERE b.name = a.name) OR (start_time = (SELECT MAX(end_time) FROM ', deparse(substitute(df_arrivals)) ,' b WHERE a.name = b.name AND b.end_time = a.start_time) AND end_time = (SELECT MIN(start_time) FROM ', deparse(substitute(df_arrivals)) ,' b WHERE a.name = b.name AND b.start_time = a.end_time)) GROUP BY name ', sep = " ")
  print('transformation can take couple of minutes for large datasets')
  output <- sqldf::sqldf(sql)
  return (output)
}
fgailly/BPS-package documentation built on May 8, 2019, 11:44 a.m.