Process Map Build Status AppVeyor Build Status Coverage status CRAN Version Download Stats

The goal of pmap is to provide functionality of generating process map from given event logs.

Usage

This is a basic example which shows you how to solve a common problem:

## basic example code
library(pmap)
library(dplyr)

# Generate simulated eventlog
> eventlog <- generate_eventlog(
     size_of_eventlog = 10000,
     number_of_customers = 2000,
     event_catalogs = c("campaign", "sale"),
     event_catalogs_size = c(10, 4))

# Check eventlog data frame structure
> head(eventlog)
            timestamp   customer_id         event_name event_type
1 2017-01-01 00:08:35 Customer 1072 Event 6 (campaign)   campaign
2 2017-01-01 00:14:42 Customer 1979 Event 1 (campaign)   campaign
3 2017-01-01 00:55:58   Customer 32 Event 3 (campaign)   campaign
4 2017-01-01 01:04:01 Customer 1877 Event 8 (campaign)   campaign
5 2017-01-01 01:47:37  Customer 833 Event 7 (campaign)   campaign
6 2017-01-01 03:34:39 Customer 1119 Event 4 (campaign)   campaign
> str(eventlog)
'data.frame':   10000 obs. of  4 variables:
 $ timestamp  : POSIXct, format: "2017-01-01 00:08:35" "2017-01-01 00:14:42" ...
 $ customer_id: chr  "Customer 1072" "Customer 1979" "Customer 32" "Customer 1877" ...
 $ event_name : chr  "Event 6 (campaign)" "Event 1 (campaign)" "Event 3 (campaign)" "Event 8 (campaign)" ...
 $ event_type : chr  "campaign" "campaign" "campaign" "campaign" ...

# Create process map
> p <- create_pmap(eventlog, target_types = c("sale"))
# Render the process map
> print(render_pmap(p))

The result will be a bit messy.

process map without prune
process map without prune

Let’s prune the process map.

# Prune the process map
> p <- p %>% prune_edges(0.5) %>% prune_nodes(0.5)
# Render the pruned process map
> print(render_pmap(p))
cleaner process map
cleaner process map