diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..01f90b2 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,112 @@ + + + + + + + +Page not found (404) • processmapR + + + + + + + + + + + +
+
+ + + + +
+
+ + +Content not found. Please use links in the navbar. + +
+ + + +
+ + + + +
+ + + + + + + + diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index 4a3992e..beade6d 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -1,104 +1,53 @@ - - - - - - - -License • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -License • processmapR + + - - - -
-
- -
-
+
+ +
-
- +
+ + + - - + diff --git a/docs/articles/index.html b/docs/articles/index.html index 74e692f..b22fbf1 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -1,104 +1,53 @@ - - - - - - - -Articles • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Articles • processmapR + + - - - -
-
- -
-
+
+
Constructing process maps
+
+
-
- +
+ + + - - + diff --git a/docs/articles/processmapr.html b/docs/articles/processmapr.html index 2b93932..119feb3 100644 --- a/docs/articles/processmapr.html +++ b/docs/articles/processmapr.html @@ -1,51 +1,49 @@ - + Constructing process maps • processmapR - - - + + + + + - - - - + + +
-

The processmapR package provids functions for creating process maps and precedence diagrams. For more information, please check <www.bupar.net>.

+

The processmapR package provids functions for creating process maps +and precedence diagrams. For more information, please check +<www.bupar.net>.

- +
-

Site built with pkgdown.

+

+

Site built with pkgdown 2.0.5.

@@ -103,5 +116,8 @@

2018-06-30

+ + + diff --git a/docs/authors.html b/docs/authors.html index edcca24..dcfa0b7 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -1,147 +1,124 @@ - - - - - - - -Authors • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Authors and Citation • processmapR - + + - - - -
-
-
-
+
-
-
- +
+ + + - - + diff --git a/docs/bootstrap-toc.css b/docs/bootstrap-toc.css new file mode 100644 index 0000000..5a85941 --- /dev/null +++ b/docs/bootstrap-toc.css @@ -0,0 +1,60 @@ +/*! + * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) + * Copyright 2015 Aidan Feldman + * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ + +/* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */ + +/* All levels of nav */ +nav[data-toggle='toc'] .nav > li > a { + display: block; + padding: 4px 20px; + font-size: 13px; + font-weight: 500; + color: #767676; +} +nav[data-toggle='toc'] .nav > li > a:hover, +nav[data-toggle='toc'] .nav > li > a:focus { + padding-left: 19px; + color: #563d7c; + text-decoration: none; + background-color: transparent; + border-left: 1px solid #563d7c; +} +nav[data-toggle='toc'] .nav > .active > a, +nav[data-toggle='toc'] .nav > .active:hover > a, +nav[data-toggle='toc'] .nav > .active:focus > a { + padding-left: 18px; + font-weight: bold; + color: #563d7c; + background-color: transparent; + border-left: 2px solid #563d7c; +} + +/* Nav: second level (shown on .active) */ +nav[data-toggle='toc'] .nav .nav { + display: none; /* Hide by default, but at >768px, show it */ + padding-bottom: 10px; +} +nav[data-toggle='toc'] .nav .nav > li > a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 30px; + font-size: 12px; + font-weight: normal; +} +nav[data-toggle='toc'] .nav .nav > li > a:hover, +nav[data-toggle='toc'] .nav .nav > li > a:focus { + padding-left: 29px; +} +nav[data-toggle='toc'] .nav .nav > .active > a, +nav[data-toggle='toc'] .nav .nav > .active:hover > a, +nav[data-toggle='toc'] .nav .nav > .active:focus > a { + padding-left: 28px; + font-weight: 500; +} + +/* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */ +nav[data-toggle='toc'] .nav > .active > ul { + display: block; +} diff --git a/docs/bootstrap-toc.js b/docs/bootstrap-toc.js new file mode 100644 index 0000000..1cdd573 --- /dev/null +++ b/docs/bootstrap-toc.js @@ -0,0 +1,159 @@ +/*! + * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) + * Copyright 2015 Aidan Feldman + * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ +(function() { + 'use strict'; + + window.Toc = { + helpers: { + // return all matching elements in the set, or their descendants + findOrFilter: function($el, selector) { + // http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/ + // http://stackoverflow.com/a/12731439/358804 + var $descendants = $el.find(selector); + return $el.filter(selector).add($descendants).filter(':not([data-toc-skip])'); + }, + + generateUniqueIdBase: function(el) { + var text = $(el).text(); + var anchor = text.trim().toLowerCase().replace(/[^A-Za-z0-9]+/g, '-'); + return anchor || el.tagName.toLowerCase(); + }, + + generateUniqueId: function(el) { + var anchorBase = this.generateUniqueIdBase(el); + for (var i = 0; ; i++) { + var anchor = anchorBase; + if (i > 0) { + // add suffix + anchor += '-' + i; + } + // check if ID already exists + if (!document.getElementById(anchor)) { + return anchor; + } + } + }, + + generateAnchor: function(el) { + if (el.id) { + return el.id; + } else { + var anchor = this.generateUniqueId(el); + el.id = anchor; + return anchor; + } + }, + + createNavList: function() { + return $(''); + }, + + createChildNavList: function($parent) { + var $childList = this.createNavList(); + $parent.append($childList); + return $childList; + }, + + generateNavEl: function(anchor, text) { + var $a = $(''); + $a.attr('href', '#' + anchor); + $a.text(text); + var $li = $('
  • '); + $li.append($a); + return $li; + }, + + generateNavItem: function(headingEl) { + var anchor = this.generateAnchor(headingEl); + var $heading = $(headingEl); + var text = $heading.data('toc-text') || $heading.text(); + return this.generateNavEl(anchor, text); + }, + + // Find the first heading level (`

    `, then `

    `, etc.) that has more than one element. Defaults to 1 (for `

    `). + getTopLevel: function($scope) { + for (var i = 1; i <= 6; i++) { + var $headings = this.findOrFilter($scope, 'h' + i); + if ($headings.length > 1) { + return i; + } + } + + return 1; + }, + + // returns the elements for the top level, and the next below it + getHeadings: function($scope, topLevel) { + var topSelector = 'h' + topLevel; + + var secondaryLevel = topLevel + 1; + var secondarySelector = 'h' + secondaryLevel; + + return this.findOrFilter($scope, topSelector + ',' + secondarySelector); + }, + + getNavLevel: function(el) { + return parseInt(el.tagName.charAt(1), 10); + }, + + populateNav: function($topContext, topLevel, $headings) { + var $context = $topContext; + var $prevNav; + + var helpers = this; + $headings.each(function(i, el) { + var $newNav = helpers.generateNavItem(el); + var navLevel = helpers.getNavLevel(el); + + // determine the proper $context + if (navLevel === topLevel) { + // use top level + $context = $topContext; + } else if ($prevNav && $context === $topContext) { + // create a new level of the tree and switch to it + $context = helpers.createChildNavList($prevNav); + } // else use the current $context + + $context.append($newNav); + + $prevNav = $newNav; + }); + }, + + parseOps: function(arg) { + var opts; + if (arg.jquery) { + opts = { + $nav: arg + }; + } else { + opts = arg; + } + opts.$scope = opts.$scope || $(document.body); + return opts; + } + }, + + // accepts a jQuery object, or an options object + init: function(opts) { + opts = this.helpers.parseOps(opts); + + // ensure that the data attribute is in place for styling + opts.$nav.attr('data-toggle', 'toc'); + + var $topContext = this.helpers.createChildNavList(opts.$nav); + var topLevel = this.helpers.getTopLevel(opts.$scope); + var $headings = this.helpers.getHeadings(opts.$scope, topLevel); + this.helpers.populateNav($topContext, topLevel, $headings); + } + }; + + $(function() { + $('nav[data-toggle="toc"]').each(function(i, el) { + var $nav = $(el); + Toc.init($nav); + }); + }); +})(); diff --git a/docs/index.html b/docs/index.html index e4fdaf5..770acd1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,52 +1,49 @@ - + Construct Process Maps Using Event Data • processmapR - - - + + + + + - - - - + + +
    -
    - +
    +

    R package for creating process maps. Part of the bupaR eco-system for business process analysis.

    -

    Read more

    +

    Read more

    -
    -

    Site built with pkgdown.

    +

    +

    Site built with pkgdown 2.0.5.

    @@ -120,5 +138,8 @@

    Developers

    + + + diff --git a/docs/pkgdown.css b/docs/pkgdown.css index 6ca2f37..80ea5b8 100644 --- a/docs/pkgdown.css +++ b/docs/pkgdown.css @@ -17,12 +17,14 @@ html, body { height: 100%; } +body { + position: relative; +} + body > .container { display: flex; height: 100%; flex-direction: column; - - padding-top: 60px; } body > .container .row { @@ -54,24 +56,34 @@ img.icon { float: right; } -img { +/* Ensure in-page images don't run outside their container */ +.contents img { max-width: 100%; + height: auto; +} + +/* Fix bug in bootstrap (only seen in firefox) */ +summary { + display: list-item; } /* Typographic tweaking ---------------------------------*/ -.contents h1.page-header { +.contents .page-header { margin-top: calc(-60px + 1em); } +dd { + margin-left: 3em; +} + /* Section anchors ---------------------------------*/ a.anchor { - margin-left: -30px; - display:inline-block; - width: 30px; - height: 30px; - visibility: hidden; + display: none; + margin-left: 5px; + width: 20px; + height: 20px; background-image: url(./link.svg); background-repeat: no-repeat; @@ -79,17 +91,15 @@ a.anchor { background-position: center center; } -.hasAnchor:hover a.anchor { - visibility: visible; -} - -@media (max-width: 767px) { - .hasAnchor:hover a.anchor { - visibility: hidden; - } +h1:hover .anchor, +h2:hover .anchor, +h3:hover .anchor, +h4:hover .anchor, +h5:hover .anchor, +h6:hover .anchor { + display: inline-block; } - /* Fixes for fixed navbar --------------------------*/ .contents h1, .contents h2, .contents h3, .contents h4 { @@ -97,37 +107,135 @@ a.anchor { margin-top: -40px; } -/* Static header placement on mobile devices */ -@media (max-width: 767px) { - .navbar-fixed-top { - position: absolute; - } - .navbar { - padding: 0; - } +/* Navbar submenu --------------------------*/ + +.dropdown-submenu { + position: relative; } +.dropdown-submenu>.dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover>.dropdown-menu { + display: block; +} + +.dropdown-submenu>a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #cccccc; + margin-top: 5px; + margin-right: -10px; +} + +.dropdown-submenu:hover>a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left>.dropdown-menu { + left: -100%; + margin-left: 10px; + border-radius: 6px 0 6px 6px; +} /* Sidebar --------------------------*/ -#sidebar { +#pkgdown-sidebar { margin-top: 30px; + position: -webkit-sticky; + position: sticky; + top: 70px; } -#sidebar h2 { + +#pkgdown-sidebar h2 { font-size: 1.5em; margin-top: 1em; } -#sidebar h2:first-child { +#pkgdown-sidebar h2:first-child { margin-top: 0; } -#sidebar .list-unstyled li { +#pkgdown-sidebar .list-unstyled li { margin-bottom: 0.5em; } +/* bootstrap-toc tweaks ------------------------------------------------------*/ + +/* All levels of nav */ + +nav[data-toggle='toc'] .nav > li > a { + padding: 4px 20px 4px 6px; + font-size: 1.5rem; + font-weight: 400; + color: inherit; +} + +nav[data-toggle='toc'] .nav > li > a:hover, +nav[data-toggle='toc'] .nav > li > a:focus { + padding-left: 5px; + color: inherit; + border-left: 1px solid #878787; +} + +nav[data-toggle='toc'] .nav > .active > a, +nav[data-toggle='toc'] .nav > .active:hover > a, +nav[data-toggle='toc'] .nav > .active:focus > a { + padding-left: 5px; + font-size: 1.5rem; + font-weight: 400; + color: inherit; + border-left: 2px solid #878787; +} + +/* Nav: second level (shown on .active) */ + +nav[data-toggle='toc'] .nav .nav { + display: none; /* Hide by default, but at >768px, show it */ + padding-bottom: 10px; +} + +nav[data-toggle='toc'] .nav .nav > li > a { + padding-left: 16px; + font-size: 1.35rem; +} + +nav[data-toggle='toc'] .nav .nav > li > a:hover, +nav[data-toggle='toc'] .nav .nav > li > a:focus { + padding-left: 15px; +} + +nav[data-toggle='toc'] .nav .nav > .active > a, +nav[data-toggle='toc'] .nav .nav > .active:hover > a, +nav[data-toggle='toc'] .nav .nav > .active:focus > a { + padding-left: 15px; + font-weight: 500; + font-size: 1.35rem; +} + +/* orcid ------------------------------------------------------------------- */ + .orcid { - height: 16px; + font-size: 16px; + color: #A6CE39; + /* margins are required by official ORCID trademark and display guidelines */ + margin-left:4px; + margin-right:4px; vertical-align: middle; } @@ -135,15 +243,14 @@ a.anchor { .ref-index th {font-weight: normal;} -.ref-index td {vertical-align: top;} -.ref-index .alias {width: 40%;} -.ref-index .title {width: 60%;} - +.ref-index td {vertical-align: top; min-width: 100px} +.ref-index .icon {width: 40px;} .ref-index .alias {width: 40%;} +.ref-index-icons .alias {width: calc(40% - 40px);} .ref-index .title {width: 60%;} .ref-arguments th {text-align: right; padding-right: 10px;} -.ref-arguments th, .ref-arguments td {vertical-align: top;} +.ref-arguments th, .ref-arguments td {vertical-align: top; min-width: 100px} .ref-arguments .name {width: 20%;} .ref-arguments .desc {width: 80%;} @@ -156,31 +263,26 @@ table { /* Syntax highlighting ---------------------------------------------------- */ -pre { - word-wrap: normal; - word-break: normal; - border: 1px solid #eee; -} - -pre, code { +pre, code, pre code { background-color: #f8f8f8; color: #333; } +pre, pre code { + white-space: pre-wrap; + word-break: break-all; + overflow-wrap: break-word; +} -pre code { - overflow: auto; - word-wrap: normal; - white-space: pre; +pre { + border: 1px solid #eee; } -pre .img { +pre .img, pre .r-plt { margin: 5px 0; } -pre .img img { +pre .img img, pre .r-plt img { background-color: #fff; - display: block; - height: auto; } code a, pre a { @@ -197,9 +299,8 @@ a.sourceLine:hover { .kw {color: #264D66;} /* keyword */ .co {color: #888888;} /* comment */ -.message { color: black; font-weight: bolder;} -.error { color: orange; font-weight: bolder;} -.warning { color: #6A0366; font-weight: bolder;} +.error {font-weight: bolder;} +.warning {font-weight: bolder;} /* Clipboard --------------------------*/ @@ -218,6 +319,19 @@ a.sourceLine:hover { visibility: visible; } +/* headroom.js ------------------------ */ + +.headroom { + will-change: transform; + transition: transform 200ms linear; +} +.headroom--pinned { + transform: translateY(0%); +} +.headroom--unpinned { + transform: translateY(-100%); +} + /* mark.js ----------------------------*/ mark { @@ -230,3 +344,41 @@ mark { .html-widget { margin-bottom: 10px; } + +/* fontawesome ------------------------ */ + +.fab { + font-family: "Font Awesome 5 Brands" !important; +} + +/* don't display links in code chunks when printing */ +/* source: https://stackoverflow.com/a/10781533 */ +@media print { + code a:link:after, code a:visited:after { + content: ""; + } +} + +/* Section anchors --------------------------------- + Added in pandoc 2.11: https://github.com/jgm/pandoc-templates/commit/9904bf71 +*/ + +div.csl-bib-body { } +div.csl-entry { + clear: both; +} +.hanging-indent div.csl-entry { + margin-left:2em; + text-indent:-2em; +} +div.csl-left-margin { + min-width:2em; + float:left; +} +div.csl-right-inline { + margin-left:2em; + padding-left:1em; +} +div.csl-indent { + margin-left: 2em; +} diff --git a/docs/pkgdown.js b/docs/pkgdown.js index de9bd72..6f0eee4 100644 --- a/docs/pkgdown.js +++ b/docs/pkgdown.js @@ -2,18 +2,11 @@ (function($) { $(function() { - $("#sidebar") - .stick_in_parent({offset_top: 40}) - .on('sticky_kit:bottom', function(e) { - $(this).parent().css('position', 'static'); - }) - .on('sticky_kit:unbottom', function(e) { - $(this).parent().css('position', 'relative'); - }); + $('.navbar-fixed-top').headroom(); - $('body').scrollspy({ - target: '#sidebar', - offset: 60 + $('body').css('padding-top', $('.navbar').height() + 10); + $(window).resize(function(){ + $('body').css('padding-top', $('.navbar').height() + 10); }); $('[data-toggle="tooltip"]').tooltip(); @@ -25,9 +18,13 @@ for (var i = 0; i < links.length; i++) { if (links[i].getAttribute("href") === "#") continue; - var path = paths(links[i].pathname); + // Ignore external links + if (links[i].host !== location.host) + continue; + + var nav_path = paths(links[i].pathname); - var length = prefix_length(cur_path, path); + var length = prefix_length(nav_path, cur_path); if (length > max_length) { max_length = length; pos = i; @@ -52,13 +49,14 @@ return(pieces); } + // Returns -1 if not found function prefix_length(needle, haystack) { if (needle.length > haystack.length) - return(0); + return(-1); // Special case for length-0 haystack, since for loop won't run if (haystack.length === 0) { - return(needle.length === 0 ? 1 : 0); + return(needle.length === 0 ? 0 : -1); } for (var i = 0; i < haystack.length; i++) { @@ -78,11 +76,11 @@ element.setAttribute('data-original-title', tooltipOriginalTitle); } - if(Clipboard.isSupported()) { + if(ClipboardJS.isSupported()) { $(document).ready(function() { - var copyButton = ""; + var copyButton = ""; - $(".examples, div.sourceCode").addClass("hasCopyButton"); + $("div.sourceCode").addClass("hasCopyButton"); // Insert copy buttons: $(copyButton).prependTo(".hasCopyButton"); @@ -91,9 +89,9 @@ $('.btn-copy-ex').tooltip({container: 'body'}); // Initialize clipboard: - var clipboardBtnCopies = new Clipboard('[data-clipboard-copy]', { + var clipboardBtnCopies = new ClipboardJS('[data-clipboard-copy]', { text: function(trigger) { - return trigger.parentNode.textContent; + return trigger.parentNode.textContent.replace(/\n#>[^\n]*/g, ""); } }); diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index 8728a18..450018a 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -1,6 +1,7 @@ -pandoc: 1.19.2.1 -pkgdown: 1.1.0 +pandoc: 2.17.1.1 +pkgdown: 2.0.5 pkgdown_sha: ~ articles: processmapr: processmapr.html +last_built: 2022-07-25T13:59Z diff --git a/docs/reference/Rplot001.png b/docs/reference/Rplot001.png new file mode 100644 index 0000000..17a3580 Binary files /dev/null and b/docs/reference/Rplot001.png differ diff --git a/docs/reference/custom.html b/docs/reference/custom.html index 32fa37b..181499d 100644 --- a/docs/reference/custom.html +++ b/docs/reference/custom.html @@ -1,195 +1,144 @@ - - - - - - - -Custom map profile — custom • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Custom map profile — custom • processmapR - - - + + -
    -
    - -
    -
    +
    -

    Function to create a custom map profile based on some event log attribute.

    -
    -
    custom(FUN = mean, attribute, units = "", color_scale = "PuBu")
    - -

    Arguments

    - - - - - - - - - - - - - - - - - - -
    FUN

    A summary function to be called on the provided event attribute, e.g. mean, median, min, max. na.rm = T by default.

    attribute

    The name of the case attribute to visualize (should be numeric)

    units

    Character to be placed after values (e.g. EUR for monitary euro values)

    color_scale

    Name of color scale to be used for nodes. Defaults to PuBu. See `Rcolorbrewer::brewer.pal.info()` for all options.

    - -

    Details

    +
    +
    custom(
    +  FUN = mean,
    +  attribute,
    +  units = "",
    +  color_scale = "PuBu",
    +  color_edges = "dodgerblue4"
    +)
    +
    -

    If used for edges, it will show the attribute values which related to the out-going node of the edge.#'

    - +
    +

    Arguments

    +
    FUN
    +

    A summary function to be called on the provided event attribute, e.g. mean, median, min, max. na.rm = T by default.

    -

    Examples

    -
    # NOT RUN {
    -library(eventdataR)
    -library(processmapR)
    -data(traffic_fines)
    -# make sure the amount attribute is propagated forward in each trace
    -# using zoo::na.locf instead of tidyr::fill since it is much faster
    -# still the whole pre-processing is still very slow
    -library(zoo)
    -
    -traffic_fines_prepared <- traffic_fines %>%
    -filter_trace_frequency(percentage = 0.8) %>%
    -group_by_case() %>%
    -mutate(amount = na.locf(amount, na.rm = F)) %>%
    -ungroup_eventlog()
    -
    -process_map(traffic_fines_prepared, type_nodes = custom(attribute = "amount", units = "EUR"))
    -# }
    -
    -
    - +
    +

    Details

    +

    If used for edges, it will show the attribute values which related to the out-going node of the edge.#'

    +
    + +
    +

    Examples

    +
    if (FALSE) {
    +library(eventdataR)
    +library(processmapR)
    +data(traffic_fines)
    +# make sure the amount attribute is propagated forward in each trace
    +# using zoo::na.locf instead of tidyr::fill since it is much faster
    +# still the whole pre-processing is still very slow
    +library(zoo)
    +
    +traffic_fines_prepared <- traffic_fines %>%
    +filter_trace_frequency(percentage = 0.8) %>%
    +group_by_case() %>%
    +mutate(amount = na.locf(amount, na.rm = F)) %>%
    +ungroup_eventlog()
    +
    +process_map(traffic_fines_prepared, type_nodes = custom(attribute = "amount", units = "EUR"))
    +}
    +
    +
    +
    +
    -
    - +
    + + + - - + diff --git a/docs/reference/dotted_chart.html b/docs/reference/dotted_chart.html index 8dcf6db..eef8fe4 100644 --- a/docs/reference/dotted_chart.html +++ b/docs/reference/dotted_chart.html @@ -1,207 +1,206 @@ - - - - - - - -Dotted chart — dotted_chart • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Dotted chart — idotted_chart • processmapR - - - + + -
    -
    - -
    -
    +
    -

    Create a dotted chart to view all events in a glance

    -
    -
    dotted_chart(eventlog, x, sort, color, units, ...)
    +    
    +
    idotted_chart(eventlog, plotly = FALSE)
    +
    +iplotly_dotted_chart(eventlog)
    +
    +plotly_dotted_chart(
    +  eventlog,
    +  x = c("absolute", "relative", "relative_week", "relative_day"),
    +  sort = c("start", "end", "duration", "start_week", "start_day"),
    +  color = NULL,
    +  units = c("weeks", "days", "hours", "mins", "secs"),
    +  ...
    +)
    +
    +dotted_chart(
    +  log,
    +  x = c("absolute", "relative", "relative_week", "relative_day"),
    +  sort = NULL,
    +  color = NULL,
    +  units = NULL,
    +  add_end_events = F,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for eventlog
    +dotted_chart(
    +  log,
    +  x = c("absolute", "relative", "relative_week", "relative_day"),
    +  sort = NULL,
    +  color = NULL,
    +  units = NULL,
    +  add_end_events = F,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for activitylog
    +dotted_chart(
    +  log,
    +  x = c("absolute", "relative", "relative_week", "relative_day"),
    +  sort = NULL,
    +  color = NULL,
    +  units = NULL,
    +  add_end_events = F,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for grouped_eventlog
    +dotted_chart(
    +  log,
    +  x = c("absolute", "relative", "relative_week", "relative_day"),
    +  sort = NULL,
    +  color = NULL,
    +  units = NULL,
    +  add_end_events = F,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for grouped_activitylog
    +dotted_chart(
    +  log,
    +  x = c("absolute", "relative", "relative_week", "relative_day"),
    +  sort = NULL,
    +  color = NULL,
    +  units = NULL,
    +  add_end_events = F,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    -# S3 method for eventlog -dotted_chart(eventlog, x = c("absolute", "relative", - "relative_week", "relative_day"), sort = c("start", "end", "duration", - "start_week", "start_day"), color = NULL, units = c("weeks", "days", - "hours", "mins", "secs"), ...) +
    +

    Arguments

    +
    eventlog
    +

    Deprecated. Use log instead.

    -# S3 method for grouped_eventlog -dotted_chart(eventlog, x = c("absolute", - "relative", "relative_week", "relative_day"), sort = c("start", "end", - "duration", "start_week", "start_day"), color = NULL, units = c("weeks", - "days", "hours", "mins", "secs"), ...) -idotted_chart(eventlog, plotly = FALSE) +
    plotly
    +

    Return plotly object

    -iplotly_dotted_chart(eventlog) -plotly_dotted_chart(eventlog)
    - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    eventlog

    Eventlog object

    x

    Value for plot on x-axis: absolute time or relative time (since start, since start of week, since start of day)

    sort

    Ordering of the cases on y-axis: start, end or duration

    color

    Optional, variable to use for coloring dots. Default is the activity identifier. Use NA for no colors.

    units

    Time units to use on x-axis in case of relative time.

    ...

    Deprecated arguments

    plotly

    Return plotly object

    - -

    Methods (by class)

    +
    x
    +

    Value for plot on x-axis: absolute time or relative time (since start, since start of week, since start of day)

    -
      -
    • eventlog: Dotted chart for event log

    • -
    • grouped_eventlog: Dotted chart for grouped event log

    • -
    - -
    - +
    +

    Methods (by class)

    + +
    • eventlog: Create dotted chart for eventlog

    • +
    • activitylog: Create dotted chart for activitylog

    • +
    • grouped_eventlog: Create dotted chart for grouped eventlog

    • +
    • grouped_activitylog: Create dotted chart for grouped activitylog

    • +
    +
    -
    - +
    + + + - - + diff --git a/docs/reference/export_graph.html b/docs/reference/export_graph.html new file mode 100644 index 0000000..0e37c52 --- /dev/null +++ b/docs/reference/export_graph.html @@ -0,0 +1,128 @@ + +Export a graph to various image formats — export_graph • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    These objects are imported from other packages. Follow the links +below to see their documentation.

    +
    DiagrammeR
    +

    export_graph

    + + +
    + + +
    +

    Arguments

    +
    graph
    +

    A graph object of class `dgr_graph`.

    + + +
    file_name
    +

    The name of the exported file (including it's extension).

    + + +
    file_type
    +

    The type of file to be exported. Options for graph files +are: `png`, `pdf`, `svg`, and `ps`.

    + + +
    title
    +

    An optional title for the output graph.

    + + +
    width
    +

    Output width in pixels or `NULL` for default. Only useful for +export to image file formats `png`, `pdf`, `svg`, and `ps`.

    + + +
    height
    +

    Output height in pixels or `NULL` for default. Only useful for +export to image file formats `png`, `pdf`, `svg`, and `ps`.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/frequency.html b/docs/reference/frequency.html index bc42afb..784c5b5 100644 --- a/docs/reference/frequency.html +++ b/docs/reference/frequency.html @@ -1,162 +1,110 @@ - - - - - - - -Frequency map profile — frequency • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Frequency map profile — frequency • processmapR - - - + + -
    -
    - -
    -
    +
    -

    Function to create a frequency profile for a process map.

    -
    -
    frequency(value = c("absolute", "relative", "absolute_case", "relative_case"),
    -  color_scale = "PuBu")
    - -

    Arguments

    - - - - - - - - - - -
    value

    The type of frequency value to be used: -absolute, relative (percentage of activity instances) or relative_case (percentage of cases the activity occurs in).

    color_scale

    Name of color scale to be used for nodes. Defaults to PuBu. See `Rcolorbrewer::brewer.pal.info()` for all options.

    - +
    +
    frequency(
    +  value = c("absolute", "relative", "absolute-case", "relative-case",
    +    "relative-antecedent", "relative-consequent"),
    +  color_scale = "PuBu",
    +  color_edges = "dodgerblue4"
    +)
    +
    -
    - +
    -
    - +
    + + + - - + diff --git a/docs/reference/get_activities.html b/docs/reference/get_activities.html new file mode 100644 index 0000000..fb555c5 --- /dev/null +++ b/docs/reference/get_activities.html @@ -0,0 +1,98 @@ + +Get data values for activities and flows from process map — get_activities • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Get data values for activities and flows from process map

    +
    + +
    +
    get_activities(process_map)
    +
    +get_flows(process_map)
    +
    + +
    +

    Arguments

    +
    process_map
    +

    An object created using process_map function. Can both be a rendered or not rendered object.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/index.html b/docs/reference/index.html index f043465..b1c7616 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -1,217 +1,152 @@ - - - - - - - -Function reference • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Function reference • processmapR - - - + + -
    -
    - -
    -
    +
    - - - - - - - - - - - + + + + + + + +
    -

    All functions

    + - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - + + - - - - - - + + + + + + + + - - -
    +

    All functions

    +

    custom()

    Custom map profile

    -

    dotted_chart() idotted_chart() iplotly_dotted_chart() plotly_dotted_chart()

    -

    Dotted chart

    +

    frequency()

    Frequency map profile

    -

    performance()

    +
    +

    layout_pm()

    Performance map profile

    -

    plot(<precedence_matrix>)

    -

    Precendence Matrix

    -

    precedence_matrix()

    -

    Precendence Matrix

    -

    processmapR

    +

    Configure layout parameters for process map

    +

    precedence_matrix_absolute()

    processmapR - Process Maps in R

    +

    Precedence Matrix

    process_map()

    Process Map

    +
    +

    process_matrix()

    +

    Create process matrix

    resource_map()

    Resource Map

    +

    resource_matrix()

    Resource Matrix

    -

    trace_explorer()

    +
    +

    get_activities() get_flows()

    +

    Get data values for activities and flows from process map

    +

    performance()

    +

    Performance map profile

    +

    plot(<process_matrix>)

    +

    Process Matrix Plot

    +

    processmapR

    +

    processmapR - Process Maps in R

    +

    trace_explorer() plotly_trace_explorer()

    Trace explorer

    - +
    +

    lined_chart() ilined_chart() iplotly_lined_chart() plotly_lined_chart()

    +

    Lined chart

    +

    idotted_chart() iplotly_dotted_chart() plotly_dotted_chart() dotted_chart()

    +

    Dotted chart

    +

    processMapOutput()

    +

    Widget output function for use in Shiny

    +

    renderProcessMap()

    +

    Widget render function for use in Shiny

    - +
    -
    - +
    + + + - - + diff --git a/docs/reference/layout_pm.html b/docs/reference/layout_pm.html new file mode 100644 index 0000000..a7e309b --- /dev/null +++ b/docs/reference/layout_pm.html @@ -0,0 +1,104 @@ + +Configure layout parameters for process map — layout_pm • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Configure layout parameters for process map

    +
    + +
    +
    layout_pm(fixed_positions = NULL, edge_weight = FALSE, edge_cutoff = 0)
    +
    + +
    +

    Arguments

    +
    fixed_positions
    +

    When specified as a data.frame with three columns 'act', 'x', and 'y' the position of nodes is fixed. Note that using this option switches to the 'neato' layout engine.

    + + +
    edge_weight
    +

    When `TRUE` then the frequency with which an edge appears in the process map has influence on the process map layout. Edges with higher frequency get higher priority in the layout algorithm, which increases the visibility of 'process highways'. Note that this has no effect when using the 'fixed_positions' parameters.

    + + +
    edge_cutoff
    +

    Edges that appear in the process map below this frequency are not considered at all when calculating the layout. This may create very long and complicated edge routings when choosen too high. Note that this has no effect when using the 'fixed_positions' parameters.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/lined_chart.html b/docs/reference/lined_chart.html new file mode 100644 index 0000000..3cf8286 --- /dev/null +++ b/docs/reference/lined_chart.html @@ -0,0 +1,204 @@ + +Lined chart — lined_chart • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Create a lined chart to view all cases at a glance

    +
    + +
    +
    lined_chart(
    +  log,
    +  x = c("absolute", "relative"),
    +  sort = NULL,
    +  color,
    +  units,
    +  line_width = 2,
    +  plotly,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for eventlog
    +lined_chart(
    +  log,
    +  x = c("absolute", "relative"),
    +  sort = NULL,
    +  color = NULL,
    +  units = c("weeks", "days", "hours", "mins", "secs"),
    +  line_width = 2,
    +  plotly = FALSE,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for activitylog
    +lined_chart(
    +  log,
    +  x = c("absolute", "relative"),
    +  sort = NULL,
    +  color = NULL,
    +  units = c("weeks", "days", "hours", "mins", "secs"),
    +  line_width = 2,
    +  plotly = FALSE,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for grouped_eventlog
    +lined_chart(
    +  log,
    +  x = c("absolute", "relative"),
    +  sort = NULL,
    +  color = NULL,
    +  units = c("weeks", "days", "hours", "mins", "secs"),
    +  line_width = 2,
    +  plotly = FALSE,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for grouped_activitylog
    +lined_chart(
    +  log,
    +  x = c("absolute", "relative"),
    +  sort = NULL,
    +  color = NULL,
    +  units = c("weeks", "days", "hours", "mins", "secs"),
    +  line_width = 2,
    +  plotly = FALSE,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +ilined_chart(eventlog, plotly = FALSE)
    +
    +iplotly_lined_chart(eventlog)
    +
    +plotly_lined_chart(eventlog, color = NULL, ...)
    +
    + +
    +

    Arguments

    +
    log
    +

    log: Object of class log or derivatives (grouped_log, eventlog, activitylog, etc.).

    + + +
    x
    +

    Value for plot on x-axis: absolute time or relative time (since start, since start of week, since start of day)

    + + +
    sort
    +

    Ordering of the cases on y-axis: start, end or duration, start_week, start_day

    + + +
    color
    +

    Optional. Should be a case attribute! No coloring applied by default.

    + + +
    units
    +

    Time units to use on x-axis in case of relative time.

    + + +
    line_width
    +

    The width of lines

    + + +
    plotly
    +

    Return plotly object

    + + +
    eventlog
    +

    Eventlog object

    + + +
    ...
    +

    Deprecated arguments

    + +
    +
    +

    Methods (by class)

    + +
    • eventlog: Create lined chart for eventlog

    • +
    • activitylog: Create lined chart for activity log

    • +
    • grouped_eventlog: Create lined chart for grouped eventlog

    • +
    • grouped_activitylog: Create lined chart for grouped activitylog

    • +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/performance.html b/docs/reference/performance.html index 82e9563..9f73b49 100644 --- a/docs/reference/performance.html +++ b/docs/reference/performance.html @@ -1,170 +1,125 @@ - - - - - - - -Performance map profile — performance • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Performance map profile — performance • processmapR - - - + + -
    -
    - -
    -
    +
    -

    Function to create a performance map profile to be used as the type of a process map. It results in a process map describing process time.

    -
    -
    performance(FUN = mean, units = "days", flow_time = c("idle_time",
    -  "inter_start_time"), color_scale = "Reds")
    - -

    Arguments

    - - - - - - - - - - - - - - - - - - -
    FUN

    A summary function to be called on the process time of a specific activity, e.g. mean, median, min, max

    units

    The time unit in which processing time should be presented (mins, hours, days, weeks)

    flow_time

    The time to depict on the flows: the inter start time is the time between the start timestamp of consecutive activity instances, -the idle time is the time between the end and start time of consecutive activity instances.

    color_scale

    Name of color scale to be used for nodes. Defaults to Reds. See `Rcolorbrewer::brewer.pal.info()` for all options.

    - +
    +
    performance(
    +  FUN = mean,
    +  units = c("mins", "secs", "hours", "days", "weeks", "months", "quarters",
    +    "semesters", "years"),
    +  flow_time = c("idle_time", "inter_start_time"),
    +  color_scale = "Reds",
    +  color_edges = "red4",
    +  ...
    +)
    +
    -
    - +
    -
    - +
    + + + - - + diff --git a/docs/reference/plot.process_matrix.html b/docs/reference/plot.process_matrix.html new file mode 100644 index 0000000..0543b02 --- /dev/null +++ b/docs/reference/plot.process_matrix.html @@ -0,0 +1,107 @@ + +Process Matrix Plot — plot.process_matrix • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Visualize a precendence matrix. A generic plot function for precedences matrices.

    +
    + +
    +
    # S3 method for process_matrix
    +plot(x, ...)
    +
    + +
    +

    Arguments

    +
    x
    +

    Precedence matrix

    + + +
    ...
    +

    Additional paramters

    + +
    +
    +

    Value

    + + +

    A ggplot object, which can be customized further, if deemed necessary.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/precedence_matrix.html b/docs/reference/precedence_matrix.html index 96c00a6..44faa8b 100644 --- a/docs/reference/precedence_matrix.html +++ b/docs/reference/precedence_matrix.html @@ -1,172 +1,120 @@ - - - - - - - -Precendence Matrix — precedence_matrix • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Precendence Matrix — precedence_matrix • processmapR - - - + + -
    -
    - -
    -
    +
    -

    Construct a precendence matrix, showing how activities are followed by each other.

    - +

    `r lifecycle::badge("deprecated")` + This function is deprecated and replaced by the process_matrix function, which shared the same usage with process_map

    -
    precedence_matrix(eventlog, type = c("absolute", "relative",
    -  "relative_antecedent", "relative_consequent", "relative_case"))
    - -

    Arguments

    - - - - - - - - - - -
    eventlog

    The event log object to be used

    type

    The type of precedence matrix, which can be absolulte, relative, relative_antecedent or relative_consequent. Absolute will return -a matrix with absolute frequencies, relative will return global relative frequencies for all antecedent-consequent pairs. -Relative_antecedent will return relative frequencies within each antecendent, i.e. showing the relative proportion of consequents within each antecedent. Relative_consequent will do the reverse.

    - +
    +
    precedence_matrix(
    +  eventlog,
    +  type = c("absolute", "relative", "relative-antecedent", "relative-consequent",
    +    "relative-case")
    +)
    +
    -

    Examples

    -
    # NOT RUN {
    -library(eventdataR)
    -data(patients)
    -precedence_matrix(patients)
    -# }
    -
    -
    - +
    -
    - +
    + + + - - + diff --git a/docs/reference/precedence_matrix_absolute.html b/docs/reference/precedence_matrix_absolute.html new file mode 100644 index 0000000..7b34f20 --- /dev/null +++ b/docs/reference/precedence_matrix_absolute.html @@ -0,0 +1,104 @@ + +Precedence Matrix — precedence_matrix_absolute • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Construct a precedence matrix, showing how activities are followed by each other. +This function computes the precedence matrix directly in C++ for efficiency. +Only the type `absolute` of (precedence_matrix) is supported.

    +
    + +
    +
    precedence_matrix_absolute(eventlog, lead = 1)
    +
    + +
    +

    Arguments

    +
    eventlog
    +

    The event log object to be used.

    + + +
    lead
    +

    The distance between activities following/preceding each other.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/processMapOutput.html b/docs/reference/processMapOutput.html new file mode 100644 index 0000000..01918c5 --- /dev/null +++ b/docs/reference/processMapOutput.html @@ -0,0 +1,106 @@ + +Widget output function for use in Shiny — processMapOutput • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Widget output function for use in Shiny

    +
    + +
    +
    processMapOutput(outputId, width = "100%", heigth = "400px")
    +
    + +
    +

    Arguments

    +
    outputId
    +

    Output variable to read from.

    + + +
    width
    +

    A valid CSS unit for the width or a number, +which will be coerced to a string and have px appended.

    + + +
    heigth
    +

    A valid CSS unit for the height or a number, +which will be coerced to a string and have px appended.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_map.html b/docs/reference/process_map.html index 5b650dd..e9c1e64 100644 --- a/docs/reference/process_map.html +++ b/docs/reference/process_map.html @@ -1,194 +1,234 @@ - - - - - - - -Process Map — process_map • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Process Map — process_map • processmapR - - - + + -
    -
    - -
    -
    +
    -

    A function for creating a process map of an event log.

    -
    -
    process_map(eventlog, type = frequency("absolute"), type_nodes = type,
    -  type_edges = type, rankdir = "LR", render = T, fixed_edge_width = F,
    -  ...)
    - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    eventlog

    The event log object for which to create a process map

    type

    A process map type, which can be created with the functions frequency and performance. The first type focusses on the frequency aspect of a process, while the second one focussed on processing time.

    type_nodes

    A process map type to be used for nodes only, which can be created with the functions frequency and performance. The first type focusses on the frequency aspect of a process, while the second one focussed on processing time.

    type_edges

    A process map type to be used for edges only, which can be created with the functions frequency and performance. The first type focusses on the frequency aspect of a process, while the second one focussed on processing time.

    rankdir

    The direction in which to layout the graph: "LR" (default),"TB", "BT", "RL", corresponding to directed graphs drawn from top to bottom, from left to right, from bottom to top, and from right to left, respectively.

    render

    Whether the map should be rendered immediately (default), or rather an object of type dgr_graph should be returned.

    fixed_edge_width

    If TRUE, don't vary the width of edges.

    ...

    Deprecated arguments

    - +
    +
    process_map(
    +  log,
    +  type = frequency("absolute"),
    +  sec = NULL,
    +  type_nodes = type,
    +  type_edges = type,
    +  sec_nodes = sec,
    +  sec_edges = sec,
    +  rankdir = "LR",
    +  render = T,
    +  fixed_edge_width = F,
    +  layout = layout_pm(),
    +  fixed_node_pos = NULL,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for eventlog
    +process_map(
    +  log,
    +  type = frequency("absolute"),
    +  sec = NULL,
    +  type_nodes = type,
    +  type_edges = type,
    +  sec_nodes = sec,
    +  sec_edges = sec,
    +  rankdir = "LR",
    +  render = T,
    +  fixed_edge_width = F,
    +  layout = layout_pm(),
    +  fixed_node_pos = NULL,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for grouped_eventlog
    +process_map(
    +  log,
    +  type = frequency("absolute"),
    +  sec = NULL,
    +  type_nodes = type,
    +  type_edges = type,
    +  sec_nodes = sec,
    +  sec_edges = sec,
    +  rankdir = "LR",
    +  render = T,
    +  fixed_edge_width = F,
    +  layout = layout_pm(),
    +  fixed_node_pos = NULL,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    +# S3 method for activitylog
    +process_map(
    +  log,
    +  type = frequency("absolute"),
    +  sec = NULL,
    +  type_nodes = type,
    +  type_edges = type,
    +  sec_nodes = sec,
    +  sec_edges = sec,
    +  rankdir = "LR",
    +  render = T,
    +  fixed_edge_width = F,
    +  layout = layout_pm(),
    +  fixed_node_pos = NULL,
    +  eventlog = deprecated(),
    +  ...
    +)
    +
    -

    Examples

    -
    # NOT RUN {
    -library(eventdataR)
    -data(patients)
    -process_map(patients)
    -# }
    -
    - +
    -
    - +
    + + + - - + diff --git a/docs/reference/process_matrix.html b/docs/reference/process_matrix.html new file mode 100644 index 0000000..7c39a18 --- /dev/null +++ b/docs/reference/process_matrix.html @@ -0,0 +1,120 @@ + +Create process matrix — process_matrix • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Create process matrix

    +
    + +
    +
    process_matrix(log, type, ..., eventlog = deprecated())
    +
    +# S3 method for eventlog
    +process_matrix(log, type = frequency(), ..., eventlog = deprecated())
    +
    +# S3 method for activitylog
    +process_matrix(log, type = frequency(), ..., eventlog = deprecated())
    +
    + +
    +

    Arguments

    +
    log
    +

    log: Object of class log or derivatives (grouped_log, eventlog, activitylog, etc.).

    + + +
    type
    +

    A process matrix type, which can be created with the functions frequency, performance and custom. The first type focusses on the frequency aspect of a process, while the second one focussed on processing time. The third one allows custom attributes to be used.

    + + +
    ...
    +

    Other arguments

    + + +
    eventlog
    +

    Deprecated. Use log instead.

    + +
    +
    +

    Methods (by class)

    + +
    • eventlog: Process matrix for event log

    • +
    • activitylog: Process matrix for activity log

    • +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/processmapR.html b/docs/reference/processmapR.html index d8c7509..913d6b2 100644 --- a/docs/reference/processmapR.html +++ b/docs/reference/processmapR.html @@ -1,145 +1,87 @@ - - - - - - - -processmapR - Process Maps in R — processmapR • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -processmapR - Process Maps in R — processmapR • processmapR - - - + + -
    -
    - -
    -
    +
    -

    This package provides several useful techniques process visualization.

    -
    - -
    - +
    -
    - +
    + + + - - + diff --git a/docs/reference/renderProcessMap.html b/docs/reference/renderProcessMap.html new file mode 100644 index 0000000..ef91d68 --- /dev/null +++ b/docs/reference/renderProcessMap.html @@ -0,0 +1,105 @@ + +Widget render function for use in Shiny — renderProcessMap • processmapR + + +
    +
    + + + +
    +
    + + +
    +

    Widget render function for use in Shiny

    +
    + +
    +
    renderProcessMap(expr, env = parent.frame(), quoted = FALSE)
    +
    + +
    +

    Arguments

    +
    expr
    +

    an expression that generates a DiagrammeR graph.

    + + +
    env
    +

    the environment in which to evaluate expr.

    + + +
    quoted
    +

    is expr a quoted expression (with quote())? +This is useful if you want to save an expression in a variable.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.5.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/resource_map.html b/docs/reference/resource_map.html index 55268da..b7c8167 100644 --- a/docs/reference/resource_map.html +++ b/docs/reference/resource_map.html @@ -1,176 +1,145 @@ - - - - - - - -Resource Map — resource_map • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Resource Map — resource_map • processmapR - - - + + -
    -
    - -
    -
    +
    -

    A function for creating a resource map of an event log based on handover of work.

    -
    -
    resource_map(eventlog, type = frequency("absolute"), render = T, ...)
    - -

    Arguments

    - - - - - - - - - - - - - - - - - - -
    eventlog

    The event log object for which to create a resource map

    type

    A process map type, which can be created with the functions frequency and performance. The first type focusses on the frequency aspect of a process, while the second one focussed on processing time.

    render

    Whether the map should be rendered immediately (default), or rather an object of type dgr_graph should be returned.

    ...

    Deprecated arguments

    - +
    +
    resource_map(log, type, render, ..., eventlog = deprecated())
    +
    +# S3 method for eventlog
    +resource_map(
    +  log,
    +  type = frequency("absolute"),
    +  render = T,
    +  ...,
    +  eventlog = deprecated()
    +)
    +
    +# S3 method for activitylog
    +resource_map(
    +  log,
    +  type = frequency("absolute"),
    +  render = T,
    +  ...,
    +  eventlog = deprecated()
    +)
    +
    + +
    +

    Arguments

    +
    log
    +

    log: Object of class log or derivatives (grouped_log, eventlog, activitylog, etc.).

    + + +
    type
    +

    A process map type, which can be created with the functions frequency and performance. The first type focusses on the frequency aspect of a process, while the second one focussed on processing time.

    -

    Examples

    -
    # NOT RUN {
    -library(eventdataR)
    -data(patients)
    -resource_map(patients)
    -# }
    -
    - +
    +

    Methods (by class)

    + +
    • eventlog: Create resource map for eventlog

    • +
    • activitylog: Create resource map for activity log

    • +
    + +
    +

    Examples

    +
    if (FALSE) {
    +library(eventdataR)
    +data(patients)
    +resource_map(patients)
    +}
    +
    +
    +
    -
    - +
    + + + - - + diff --git a/docs/reference/resource_matrix.html b/docs/reference/resource_matrix.html index a744849..d96fbee 100644 --- a/docs/reference/resource_matrix.html +++ b/docs/reference/resource_matrix.html @@ -1,172 +1,136 @@ - - - - - - - -Resource Matrix — resource_matrix • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Resource Matrix — resource_matrix • processmapR - - - + + -
    -
    - -
    -
    +
    -

    Construct a resource matrix, showing how work is handed over

    -
    -
    resource_matrix(eventlog, type = c("absolute", "relative",
    -  "relative_antecedent", "relative_consequent"))
    - -

    Arguments

    - - - - - - - - - - -
    eventlog

    The event log object to be used

    type

    The type of resource matrix, which can be absolulte, relative, relative_antecedent or relative_consequent. Absolute will return +

    +
    resource_matrix(log, type, eventlog = deprecated())
    +
    +# S3 method for eventlog
    +resource_matrix(
    +  log,
    +  type = c("absolute", "relative", "relative-antecedent", "relative-consequent"),
    +  eventlog = deprecated()
    +)
    +
    +# S3 method for activitylog
    +resource_matrix(
    +  log,
    +  type = c("absolute", "relative", "relative-antecedent", "relative-consequent"),
    +  eventlog = deprecated()
    +)
    +
    + +
    +

    Arguments

    +
    log
    +

    log: Object of class log or derivatives (grouped_log, eventlog, activitylog, etc.).

    + + +
    type
    +

    The type of resource matrix, which can be absolulte, relative, relative_antecedent or relative_consequent. Absolute will return a matrix with absolute frequencies, relative will return global relative frequencies for all antecedent-consequent pairs. -Relative_antecedent will return relative frequencies within each antecendent, i.e. showing the relative proportion of consequents within each antecedent. Relative_consequent will do the reverse.

    - +Relative_antecedent will return relative frequencies within each antecendent, i.e. showing the relative proportion of consequents within each antecedent. Relative_consequent will do the reverse.

    -

    Examples

    -
    # NOT RUN {
    -library(eventdataR)
    -data(patients)
    -precedence_matrix(patients)
    -# }
    -
    -
    - +
    +

    Methods (by class)

    + +
    • eventlog: Resource matrix of event log

    • +
    • activitylog: Resource matrix of activity log

    • +
    + +
    +

    Examples

    +
    if (FALSE) {
    +library(eventdataR)
    +data(patients)
    +precedence_matrix(patients)
    +}
    +
    +
    +
    +
    -
    - +
    + + + - - + diff --git a/docs/reference/trace_explorer.html b/docs/reference/trace_explorer.html index bfe4bd9..0e5c9b9 100644 --- a/docs/reference/trace_explorer.html +++ b/docs/reference/trace_explorer.html @@ -1,178 +1,197 @@ - - - - - - - -Trace explorer — trace_explorer • processmapR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Trace explorer — trace_explorer • processmapR - - - + + -
    -
    - -
    -
    +
    -

    Explore traces, ordered by relative trace frequency

    -
    -
    trace_explorer(eventlog, coverage = 0.2, type = c("frequent", "infrequent"),
    -  .abbreviate = T, scale_fill = scale_fill_discrete(h = c(0, 360) + 15, l =
    -  40), raw_data = F)
    - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    eventlog

    Eventlog object

    coverage

    The percentage coverage of the trace to explore. Default is 20% most (in)frequent

    type

    Frequent or infrequenct traces to explore

    .abbreviate

    If TRUE, abbreviate activity labels

    scale_fill

    Set color scale

    raw_data

    Return raw data

    - +
    +
    trace_explorer(
    +  log,
    +  coverage = NULL,
    +  n_traces = NULL,
    +  type = c("frequent", "infrequent"),
    +  coverage_labels = c("relative", "absolute", "cumulative"),
    +  .abbreviate = T,
    +  show_labels = T,
    +  label_size = 3,
    +  scale_fill = processmapR:::scale_fill_discrete_bupaR(),
    +  raw_data = F,
    +  eventlog = deprecated()
    +)
    +
    +# S3 method for eventlog
    +trace_explorer(
    +  log,
    +  coverage = NULL,
    +  n_traces = NULL,
    +  type = c("frequent", "infrequent"),
    +  coverage_labels = c("relative", "absolute", "cumulative"),
    +  .abbreviate = T,
    +  show_labels = T,
    +  label_size = 3,
    +  scale_fill = processmapR:::scale_fill_discrete_bupaR(),
    +  raw_data = F,
    +  eventlog = deprecated()
    +)
    +
    +# S3 method for activitylog
    +trace_explorer(
    +  log,
    +  coverage = NULL,
    +  n_traces = NULL,
    +  type = c("frequent", "infrequent"),
    +  coverage_labels = c("relative", "absolute", "cumulative"),
    +  .abbreviate = T,
    +  show_labels = T,
    +  label_size = 3,
    +  scale_fill = processmapR:::scale_fill_discrete_bupaR(),
    +  raw_data = F,
    +  eventlog = deprecated()
    +)
    +
    +plotly_trace_explorer(
    +  eventlog,
    +  coverage = NULL,
    +  n_traces = NULL,
    +  type = c("frequent", "infrequent"),
    +  coverage_labels = c("relative", "absolute", "cumulative"),
    +  .abbreviate = T,
    +  show_labels = T,
    +  label_size = 3,
    +  scale_fill = processmapR:::scale_fill_discrete_bupaR(),
    +  raw_data = F
    +)
    +
    -
    - +
    -
    - +
    + + + - - + diff --git a/docs/sitemap.xml b/docs/sitemap.xml new file mode 100644 index 0000000..e5ea9e5 --- /dev/null +++ b/docs/sitemap.xml @@ -0,0 +1,84 @@ + + + + /authors.html + + + /LICENSE-text.html + + + /index.html + + + /articles/index.html + + + /articles/processmapr.html + + + /reference/index.html + + + /reference/custom.html + + + /reference/dotted_chart.html + + + /reference/frequency.html + + + /reference/performance.html + + + /reference/plot.precedence_matrix.html + + + /reference/precedence_matrix.html + + + /reference/processmapR.html + + + /reference/process_map.html + + + /reference/resource_map.html + + + /reference/resource_matrix.html + + + /reference/trace_explorer.html + + + /reference/layout_pm.html + + + /reference/precedence_matrix_absolute.html + + + /reference/process_matrix.html + + + /reference/get_activities.html + + + /reference/plot.process_matrix.html + + + /reference/lined_chart.html + + + /reference/export_graph.html + + + /reference/processMapOutput.html + + + /reference/renderProcessMap.html + + + /404.html + + diff --git a/src-i386/RcppExports.cpp b/src-i386/RcppExports.cpp new file mode 100644 index 0000000..2369d38 --- /dev/null +++ b/src-i386/RcppExports.cpp @@ -0,0 +1,35 @@ +// Generated by using Rcpp::compileAttributes() -> do not edit by hand +// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 + +#include + +using namespace Rcpp; + +#ifdef RCPP_USE_GLOBAL_ROSTREAM +Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); +Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); +#endif + +// count_precedence +DataFrame count_precedence(CharacterVector cases, IntegerVector activities, int lead); +RcppExport SEXP _processmapR_count_precedence(SEXP casesSEXP, SEXP activitiesSEXP, SEXP leadSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< CharacterVector >::type cases(casesSEXP); + Rcpp::traits::input_parameter< IntegerVector >::type activities(activitiesSEXP); + Rcpp::traits::input_parameter< int >::type lead(leadSEXP); + rcpp_result_gen = Rcpp::wrap(count_precedence(cases, activities, lead)); + return rcpp_result_gen; +END_RCPP +} + +static const R_CallMethodDef CallEntries[] = { + {"_processmapR_count_precedence", (DL_FUNC) &_processmapR_count_precedence, 3}, + {NULL, NULL, 0} +}; + +RcppExport void R_init_processmapR(DllInfo *dll) { + R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); + R_useDynamicSymbols(dll, FALSE); +} diff --git a/src-i386/RcppExports.o b/src-i386/RcppExports.o new file mode 100644 index 0000000..15d81be Binary files /dev/null and b/src-i386/RcppExports.o differ diff --git a/src-i386/count_precedence.cpp b/src-i386/count_precedence.cpp new file mode 100644 index 0000000..38c19f1 --- /dev/null +++ b/src-i386/count_precedence.cpp @@ -0,0 +1,100 @@ +// [[Rcpp::plugins("cpp11")]] +// [[Rcpp::depends(BH)]] +#include +#include +#include +#include +using namespace Rcpp; + +typedef std::pair act_pair; + +// [[Rcpp::export]] +DataFrame count_precedence(CharacterVector cases, + IntegerVector activities, + int lead) { + + if (cases.size() != activities.size()) { + stop("Inputs should be of equal length!"); + } + + CharacterVector levels = activities.attr("levels"); + int startIdx = levels.size() + 1; + int endIdx = levels.size() + 1; + + std::unordered_map> counts; + + String curCase; + int act = -1; + + for (int i = 0; i < cases.size(); ++i) { + String c = cases[i]; + + int leadIdx = i+lead; + + int leadAct = -1; + if (leadIdx < cases.size()) { + if (cases[leadIdx] != c) { // i+lead is safe + // End event + leadAct = endIdx; + } else { + // Normal, assert(cases.size() == activities.size()); + leadAct = activities[leadIdx]; + } + } + + act = activities[i]; + + if (leadAct != -1) { + if (c != curCase) { + // Start event + counts[act_pair(startIdx, act)]++; + } + counts[act_pair(act, leadAct)]++; + } + + curCase = c; + } + + if (act != -1) { + // Add last end event + counts[act_pair(act, endIdx)]++; + } + + unsigned len = counts.size(); + IntegerVector antecedent(len); + IntegerVector consequent(len); + IntegerVector n(len); + unsigned int count = 0; + + for (auto it = counts.begin(); it != counts.end(); ++it) { + + act_pair pair = it->first; + antecedent[count] = pair.first; + consequent[count] = pair.second; + n[count] = it->second; + + count++; + } + + + CharacterVector antLev(levels.size() + 1); + for(int i = 0; i < levels.size(); ++i) { + antLev[i] = levels[i]; + } + antLev[levels.size()] = "Start"; + antecedent.attr("levels") = antLev; + antecedent.attr("class") = "factor"; + + + CharacterVector conLev(levels.size() + 1); + for(int i = 0; i < levels.size(); ++i) { + conLev[i] = levels[i]; + } + conLev[levels.size()] = "End"; + consequent.attr("levels") = conLev; + consequent.attr("class") = "factor"; + + return DataFrame::create(Named("antecedent")=antecedent, + Named("consequent")=consequent, + Named("n")=n); +} diff --git a/src-i386/count_precedence.o b/src-i386/count_precedence.o new file mode 100644 index 0000000..d396c1a Binary files /dev/null and b/src-i386/count_precedence.o differ diff --git a/src-i386/processmapR.dll b/src-i386/processmapR.dll new file mode 100644 index 0000000..3cc79aa Binary files /dev/null and b/src-i386/processmapR.dll differ