R/wellbeing_report.R

Defines functions wellbeing_report

Documented in wellbeing_report

#' @title Generate a Wellbeing Report in HTML
#'
#' @description
#' `r lifecycle::badge('experimental')`
#'
#' Generate a static HTML report on wellbeing, taking a custom Wellbeing Query
#' and an Hourly Collaboration query as inputs. See `Required metrics` section
#' for more details on the required inputs for the Wellbeing Query. Note that
#' this function is currently still in experimental/development stage and may
#' experience changes in the near term.
#'
#' @param wbq Data frame. A custom Wellbeing Query dataset based on the Person
#'   Query. If certain metrics are missing from the Wellbeing / Person Query,
#'   the relevant visual will show up with an indicative message.
#' @param hcq Data frame. An Hourly Collaboration Query dataset.
#' @param hrvar String specifying HR attribute to cut by archetypes. Defaults to
#'   `Organization`.
#' @param mingroup Numeric value setting the privacy threshold / minimum group
#'   size. Defaults to 5.
#' @param start_hour A character vector specifying starting hours, e.g.
#'   `"0900"`. Note that this currently only supports **hourly** increments. If
#'   the official hours specifying checking in and 9 AM and checking out at 5
#'   PM, then `"0900"` should be supplied here.
#' @param end_hour A character vector specifying starting hours, e.g. `"1700"`.
#'   Note that this currently only supports **hourly** increments. If the
#'   official hours specifying checking in and 9 AM and checking out at 5 PM,
#'   then `"1700"` should be supplied here.
#' @param path Pass the file path and the desired file name, _excluding the file
#'   extension_. Defaults to `"wellbeing_report"`.
#'
#' @section Required metrics:
#'  A full list of the required metrics are as follows:
#'    - `Urgent_meeting_hours`
#'    - `IMs_sent_other_level`
#'    - `IMs_sent_same_level`
#'    - `Emails_sent_other_level`
#'    - `Emails_sent_same_level`
#'    - `Emails_sent`
#'    - `IMs_sent`
#'    - `Meeting_hours_intimate_group`
#'    - `Meeting_hours_1on1`
#'    - `Urgent_email_hours`
#'    - `Unscheduled_call_hours`
#'    - `Meeting_hours`
#'    - `Instant_Message_hours`
#'    - `Email_hours`
#'    - `Total_focus_hours`
#'    - `Weekend_IMs_sent`
#'    - `Weekend_emails_sent`
#'    - `After_hours_collaboration_hours`
#'    - `After_hours_meeting_hours`
#'    - `After_hours_instant_messages`
#'    - `After_hours_in_unscheduled_calls`
#'    - `After_hours_email_hours`
#'    - `Collaboration_hours`
#'    - `Workweek_span`
#'
#'
#' @export
wellbeing_report <- function(wbq,
                             hcq,
                             hrvar = "Organization",
                             mingroup = 5,
                             start_hour = "0900",
                             end_hour = "1700",
                             path = "wellbeing_report"
                             ){

  ## Check if dependencies are installed
  check_pkg_installed(pkgname = "flexdashboard")


  ## Generate report from RMarkdown
  generate_report2(
    wbq = wbq,
    hcq = hcq,
    hrvar = hrvar,
    mingroup = mingroup,
    output_file = paste0(path, ".html"),
    report_title = "Org Insights | Employee Wellbeing Report",
    rmd_dir = system.file("rmd_template/wellbeing/wellbeing_report.rmd", package = "wpa"),
    output_format =
      flexdashboard::flex_dashboard(orientation = "columns",
                                    vertical_layout = "fill",
                                    css = system.file("rmd_template/wellbeing/custom.css", package = "wpa")),
    # Additional arguments to param
    start_hour = start_hour,
    end_hour = end_hour
  )
}

Try the wpa package in your browser

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

wpa documentation built on Aug. 21, 2023, 5:11 p.m.