R/summary.eventlog.R

Defines functions summary.grouped_eventlog summary.activitylog summary.eventlog

Documented in summary.eventlog summary.grouped_eventlog

#' @title Generic summary function for eventlog class
#' @description Generic summary function for eventlog class
#' @param object \code{\link{log}}: Object of class \code{\link{eventlog}} or \code{\link{activitylog}}
#' @param ... Ignored.
#' @rdname summary
#' @method summary eventlog
#' @export

summary.eventlog <- function(object, ...){

	eventlog <- object

	ca <- case_list(eventlog)

	number_of_events <- nrow(eventlog)
	number_of_cases <- nrow(ca)
	number_of_traces <- length(unique(ca$trace_id))
	number_of_activities <- nrow(activities(eventlog))


	first_event <- as.character(min(pull(eventlog, !!as.symbol(timestamp(eventlog)))))
	last_event <- as.character(max(pull(eventlog, !!as.symbol(timestamp(eventlog)))))

	events_per_case <- number_of_events/number_of_cases

	cat("Number of events:  ")
	cat(number_of_events)
	cat("\nNumber of cases:  ")
	cat(number_of_cases)
	cat("\nNumber of traces:  ")
	cat(number_of_traces)
	cat("\nNumber of distinct activities:  ")
	cat(number_of_activities)
	cat("\nAverage trace length:  ")
	cat(events_per_case)
	cat("\n\nStart eventlog:  ")
	cat(first_event)
	cat("\nEnd eventlog:  ")
	cat(last_event)
	cat("\n\n")
	NextMethod(object)

}

#' @method summary activitylog
#' @export

summary.activitylog <- function(object, ...){

	eventlog <- object

	ca <- case_list(eventlog)

	number_of_events <- n_events(eventlog)
	number_of_cases <- nrow(ca)
	number_of_traces <- length(unique(ca$trace_id))
	number_of_activities <- nrow(activities(eventlog))

	timestamps <- gather(eventlog[timestamps(eventlog)]) %>% pull(.data[["value"]])

	first_event <- format(min(timestamps))
	last_event <- format(max(timestamps))

	events_per_case <- number_of_events/number_of_cases

	cat("Number of events:  ")
	cat(number_of_events)
	cat("\nNumber of cases:  ")
	cat(number_of_cases)
	cat("\nNumber of traces:  ")
	cat(number_of_traces)
	cat("\nNumber of distinct activities:  ")
	cat(number_of_activities)
	cat("\nAverage trace length:  ")
	cat(events_per_case)
	cat("\n\nStart eventlog:  ")
	cat(first_event)
	cat("\nEnd eventlog:  ")
	cat(last_event)
	cat("\n\n")
	NextMethod(object)

}

#' @describeIn summary Summary of grouped event log
#' @export

summary.grouped_eventlog <- function(object, ...) {
	object <- eventlog(object, validate = FALSE)
	NextMethod(object)
}

Try the bupaR package in your browser

Any scripts or data that you put into this service are public.

bupaR documentation built on April 3, 2023, 5:23 p.m.