get_str_weak {COINr}R Documentation

Generate strengths and weaknesses for a specified unit


Generates a table of strengths and weaknesses for a selected unit, based on ranks, or ranks within a specified grouping variable.


  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 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.


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).


# 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")

[Package COINr version 1.1.7 Index]