Skip to contents

Set of different market structure measures to reflect a given market structure.


concstats_mstruct(x, type = c("firm", "nrs_eq", "top", "top3", "top5",
 "all"), na.rm = TRUE, digits = NULL)



A non-negative numeric vector.


A character string of the measure to be calculated, can be abbreviated with the first letter. Defaults to "firm". Input is not case-sensitive.


A logical vector that indicates whether NA values should be excluded or not. Must be either TRUE or FALSE. The default is TRUE. If set to FALSE the computation yields NA if vector contains NA values.


A non-null value for digits specifies the minimum number of significant digits to be printed in values. The default is NULL and will use base R print option. Significant digits defaults to 7.


A single calculated numeric measure or data frame.


concstats_mstruct is a wrapper for the proposed structural measures concstats_firm(), returns the number of firms with a given market share concstats_nrs_eq() computes the reciprocal of the HHI, which indicates the equivalent number of firms of the same size, concstats_top(), concstats_top3(), and concstats_top5() calculate the share of the top (top 3 and top 5) firm(s) and returns the value in percentage. concstats_all_mstruct() computes all measures in a one step procedure. All measures can be computed individually.


The vector of market shares should be in a decimal form corresponding to total share of individual firms/units.The sum of the vector should sum up to 1.


# a vector of market shares
x <- c(0.35, 0.4, 0.05, 0.1, 0.06, 0.04)
# the number of firms with market share
concstats_mstruct(x, type = "firm")
#> [1] 6
# Calculate top market share individually
#> [1] 40
# Calculate the market structure group measures
concstats_mstruct(x, type = "all", digits = 2)
#>          Measure Value
#> 1          Firms   6.0
#> 2 Nrs_equivalent   3.3
#> 3        Top (%)  40.0
#> 4       Top3 (%)  85.0
#> 5       Top5 (%)  96.0