R/create_rank.R
create_rank.RdThis function scans a standard Person query output for groups with high levels of a given Viva Insights Metric. Returns a plot by default, with an option to return a table with all groups (across multiple HR attributes) ranked by the specified metric.
create_rank(
data,
metric,
hrvar = extract_hr(data, exclude_constants = TRUE),
mingroup = 5,
return = "table",
mode = "simple",
plot_mode = 1
)A Standard Person Query dataset in the form of a data frame.
Character string containing the name of the metric, e.g. "Collaboration_hours"
String containing the name of the HR Variable by which to split
metrics. Defaults to "Organization". To run the analysis on the total
instead of splitting by an HR attribute, supply NULL (without quotes).
Numeric value setting the privacy threshold / minimum group size. Defaults to 5.
String specifying what to return. This must be one of the following strings:
"plot" (default)
"table"
See Value for more information.
String to specify calculation mode. Must be either:
"simple"
"combine"
Numeric vector to determine which plot mode to return. Must
be either 1 or 2, and is only used when return = "plot".
1: Top and bottom five groups across the data population are highlighted
2: Top and bottom groups per organizational attribute are highlighted
A different output is returned depending on the value passed to the return
argument:
"plot": 'ggplot' object. A bubble plot where the x-axis represents the
metric, the y-axis represents the HR attributes, and the size of the
bubbles represent the size of the organizations. Note that there is no
plot output if mode is set to "combine".
"table": data frame. A summary table for the metric.
Other Visualization:
afterhours_dist(),
afterhours_fizz(),
afterhours_line(),
afterhours_rank(),
afterhours_summary(),
afterhours_trend(),
collaboration_area(),
collaboration_dist(),
collaboration_fizz(),
collaboration_line(),
collaboration_rank(),
collaboration_sum(),
collaboration_trend(),
create_bar(),
create_bar_asis(),
create_boxplot(),
create_bubble(),
create_dist(),
create_fizz(),
create_inc(),
create_line(),
create_line_asis(),
create_period_scatter(),
create_sankey(),
create_scatter(),
create_stacked(),
create_tracking(),
create_trend(),
email_dist(),
email_fizz(),
email_line(),
email_rank(),
email_summary(),
email_trend(),
external_dist(),
external_fizz(),
external_line(),
external_network_plot(),
external_rank(),
external_sum(),
hr_trend(),
hrvar_count(),
hrvar_trend(),
internal_network_plot(),
keymetrics_scan(),
meeting_dist(),
meeting_fizz(),
meeting_line(),
meeting_quality(),
meeting_rank(),
meeting_summary(),
meeting_trend(),
meetingtype_dist(),
meetingtype_dist_ca(),
meetingtype_dist_mt(),
meetingtype_summary(),
mgrcoatt_dist(),
mgrrel_matrix(),
one2one_dist(),
one2one_fizz(),
one2one_freq(),
one2one_line(),
one2one_rank(),
one2one_sum(),
one2one_trend(),
period_change(),
workloads_dist(),
workloads_fizz(),
workloads_line(),
workloads_rank(),
workloads_summary(),
workloads_trend(),
workpatterns_area(),
workpatterns_rank()
Other Flexible:
create_bar(),
create_bar_asis(),
create_boxplot(),
create_bubble(),
create_density(),
create_dist(),
create_fizz(),
create_hist(),
create_inc(),
create_line(),
create_line_asis(),
create_period_scatter(),
create_sankey(),
create_scatter(),
create_stacked(),
create_tracking(),
create_trend(),
period_change()
sq_data_small <- dplyr::slice_sample(sq_data, prop = 0.1)
# Plot mode 1 - show top and bottom five groups
create_rank(
data = sq_data_small,
hrvar = c("FunctionType", "LevelDesignation"),
metric = "Emails_sent",
return = "plot",
plot_mode = 1
)
# Plot mode 2 - show top and bottom groups per HR variable
create_rank(
data = sq_data_small,
hrvar = c("FunctionType", "LevelDesignation"),
metric = "Emails_sent",
return = "plot",
plot_mode = 2
)
# Return a table
create_rank(
data = sq_data_small,
metric = "Emails_sent",
return = "table"
)
#> # A tibble: 18 × 4
#> hrvar group Emails_sent n
#> <chr> <chr> <dbl> <int>
#> 1 FunctionType Sales 64.0 35
#> 2 FunctionType Marketing 58.0 72
#> 3 LevelDesignation Director 57.3 24
#> 4 LevelDesignation Manager 51.5 102
#> 5 Organization Finance 49.9 166
#> 6 Organization Financial Planning 49.8 39
#> 7 Organization Customer Service 47.7 29
#> 8 LevelDesignation Senior IC 47.4 35
#> 9 Organization Human Resources 46.8 37
#> 10 FunctionType Operations 44.1 62
#> 11 FunctionType Engineering 44.1 22
#> 12 FunctionType G_and_A 43.9 57
#> 13 LevelDesignation Support 43.5 142
#> 14 LevelDesignation Junior IC 42.5 30
#> 15 FunctionType R_and_D 41.4 35
#> 16 Organization IT 39.0 65
#> 17 FunctionType Finance 35.0 42
#> 18 FunctionType IT 30.5 11
# \donttest{
# Return a table - combination mode
create_rank(
data = sq_data_small,
metric = "Emails_sent",
mode = "combine",
return = "table"
)
#> # A tibble: 134 × 4
#> hrvar group Emails_sent n
#> <chr> <chr> <dbl> <int>
#> 1 Combined [FunctionType] Sales [LevelDesignation] Support 65.1 11
#> 2 Combined [FunctionType] Marketing [LevelDesignation] Manag… 64.3 26
#> 3 Combined [FunctionType] Sales [LevelDesignation] Manager 62.2 11
#> 4 Combined [FunctionType] Marketing [LevelDesignation] Direc… 59.5 5
#> 5 Combined [FunctionType] Operations [LevelDesignation] Dire… 54.8 5
#> 6 Combined [FunctionType] Marketing [LevelDesignation] Suppo… 54.0 26
#> 7 Combined [FunctionType] Sales [LevelDesignation] Senior IC 53.7 6
#> 8 Combined [FunctionType] Marketing [LevelDesignation] Junio… 53.5 8
#> 9 Combined [FunctionType] Marketing [LevelDesignation] Senio… 53.4 7
#> 10 Combined [FunctionType] R_and_D [LevelDesignation] Senior … 50.6 5
#> # ℹ 124 more rows
# }