R/create_rank.R
create_rank.Rd
This 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_asis()
,
create_bar()
,
create_boxplot()
,
create_bubble()
,
create_dist()
,
create_fizz()
,
create_inc()
,
create_line_asis()
,
create_line()
,
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_ca()
,
meetingtype_dist_mt()
,
meetingtype_dist()
,
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_asis()
,
create_bar()
,
create_boxplot()
,
create_bubble()
,
create_density()
,
create_dist()
,
create_fizz()
,
create_hist()
,
create_inc()
,
create_line_asis()
,
create_line()
,
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: 30 × 4
#> hrvar group Emails_sent n
#> <chr> <chr> <dbl> <int>
#> 1 FunctionType Sales 58.0 61
#> 2 FunctionType Marketing 57.0 164
#> 3 LevelDesignation Director 51.5 51
#> 4 Organization Finance-East 51.5 55
#> 5 Organization Human Resources 49.6 46
#> 6 Organization Customer Service 46.8 48
#> 7 Organization Finance-South 46.6 57
#> 8 Organization G&A Central 45.9 46
#> 9 Organization Finance-West 45.7 55
#> 10 LevelDesignation Manager 45.6 250
#> # … with 20 more rows
# \donttest{
# Return a table - combination mode
create_rank(
data = sq_data_small,
metric = "Emails_sent",
mode = "combine",
return = "table"
)
#> # A tibble: 352 × 4
#> hrvar group Emails…¹ n
#> <chr> <chr> <dbl> <int>
#> 1 Combined [FunctionType] Marketing [LevelDesignation] Director 61.6 13
#> 2 Combined [FunctionType] Sales [LevelDesignation] Manager 59.9 21
#> 3 Combined [FunctionType] Marketing [LevelDesignation] Manager 59.7 55
#> 4 Combined [FunctionType] Marketing [LevelDesignation] Junior IC 59.4 15
#> 5 Combined [FunctionType] Sales [LevelDesignation] Support 58.2 17
#> 6 Combined [FunctionType] Sales [LevelDesignation] Junior IC 55.9 11
#> 7 Combined [FunctionType] Marketing [LevelDesignation] Support 54.4 60
#> 8 Combined [FunctionType] Marketing [LevelDesignation] Senior IC 52.1 20
#> 9 Combined [FunctionType] Engineering [LevelDesignation] Manager 49.3 24
#> 10 Combined [FunctionType] Sales [LevelDesignation] Senior IC 48.1 8
#> # … with 342 more rows, and abbreviated variable name ¹Emails_sent
# }