Generates a table of strengths and weaknesses for a selected unit, based on ranks, or ranks within a specified grouping variable.
get_str_weak(
coin,
dset,
usel = NULL,
topN = 5,
bottomN = 5,
withcodes = TRUE,
use_group = NULL,
unq_discard = NULL,
min_discard = TRUE,
report_level = NULL,
with_units = TRUE,
adjust_direction = NULL,
sig_figs = 3
)
A list containing a data frame .$Strengths
, and a data frame .$Weaknesses
.
Each data frame has columns with indicator code, name, rank and value (for the selected unit).
A coin
The data set to extract indicator data from, to use as strengths and weaknesses.
A selected unit code
The top N indicators to report
The bottom N indicators to report
If TRUE
(default), also includes a column of indicator codes. Setting to FALSE
may be more useful
in generating reports, where codes are not helpful.
An optional grouping variable to use for reporting
in-group ranks. Specifying this will report the ranks of the selected unit within the group of use_group
to which it belongs.
Optional parameter for handling discrete indicators. Some indicators may be binary
variables of the type "yes = 1", "no = 0". These may be picked up as strengths or weaknesses, when they
may not be wanted to be highlighted, since e.g. maybe half of units will have a zero or a one. This argument
takes a number between 0 and 1 specifying a unique value threshold for ignoring indicators as strengths. E.g.
setting prc_unq_discard = 0.2
will ensure that only indicators with at least 20% unique values will be
highlighted as strengths or weaknesses. Set to NULL
to disable (default).
If TRUE
(default), discards any strengths which correspond to the minimum rank for the given
indicator. See details.
Aggregation level to report parent codes from. For example, setting
report_level = 2
(default) will add a column to the strengths and weaknesses tables which reports the aggregation
group from level 2, to which each reported indicator belongs.
If TRUE
(default), includes indicator units in output tables.
If TRUE
, will adjust directions of indicators according to the "Direction" column
of IndMeta
. By default, this is TRUE
if dset = "Raw"
, and FALSE
otherwise.
Number of significant figures to round values to. If NULL
returns values as they are.
This currently only works at the indicator level. Indicators with NA
values for the selected unit are ignored.
Strengths and weaknesses mean the topN
-ranked indicators for the selected unit. Effectively, this takes the rank that the
selected unit has in each indicator, sorts the ranks, and takes the top N highest and lowest.
This function must be used with a little care: indicators should be adjusted for their directions before use,
otherwise a weakness might be counted as a strength, and vice versa. Use the adjust_direction
parameter
to help here.
A further useful parameter is unq_discard
, which also filters out any indicators with a low number of
unique values, based on a specified threshold. Also min_discard
which filters out any indicators which
have the minimum rank.
The best way to use this function is to play around with the settings a little bit. The reason being that
in practice, indicators have very different distributions and these can sometimes lead to unexpected
outcomes. An example is if you have an indicator with 50% zero values, and the rest non-zero (but unique).
Using the sport ranking system, all units with zero values will receive a rank which is equal to the number
of units divided by two. This then might be counted as a "strength" for some units with overall low scores.
But a zero value can hardly be called a strength. This is where the min_discard
function can help out.
Problems such as these mainly arise when e.g. generating a large number of country profiles.
This function replaces the now-defunct getStrengthNWeak()
from COINr < v1.0.
# build example coin
coin <- build_example_coin(up_to = "new_coin", quietly = TRUE)
# get strengths and weaknesses for ESP
get_str_weak(coin, dset = "Raw", usel = "ESP")
Run the code above in your browser using DataLab