Skip to contents

This function translates a vector of 3-digit ISCO08/ISCO88COM codes to MSEC codes using the translation tables stored in all_schema$isco08_to_msec / all_schema$isco88com_to_msec.

Usage

isco08_to_msec(
  x,
  is_supervisor,
  self_employed,
  n_employees,
  label = FALSE,
  to_factor = FALSE,
  proto = FALSE
)

isco88com_to_msec(
  x,
  is_supervisor,
  self_employed,
  n_employees,
  label = FALSE,
  to_factor = FALSE,
  proto = FALSE
)

Arguments

x

A character vector of 3-digit ISCO codes. This should be the 4-digit equivalent so instead of 131, the code should be 1310, which is the 4-digit version of of the 3-digit ISCO.

is_supervisor

A numeric vector indicating whether each individual is a supervisor (1, e.g. responsible for other employees) or not (0).

self_employed

A numeric vector indicating whether each individual is self-employed (1) or an employee (0).

n_employees

A numeric vector indicating the number of employees under each respondent.

label

A logical value indicating whether to return the labels of the translated MSEC codes (default is FALSE).

to_factor

A logical value indicating whether to return a factor instead of a character. The order of the labels is taken from the labels for MSEC found in all_labels (default is FALSE).

proto

A boolean set to FALSE by default that controls whether to use the legacy 'prototype' version of MSEC. See the details section for more information.

Value

A character vector of MSEC codes.

Details

The Micro Socio-Economic Classes (MSECS) is a micro-level implementation of the ESEC which clusters micro-SECs by skill similarity. By aggregating MSECS researchers can arrive at ESEC or ESEC-MP. MSECS provides a micro-level class schema which retains the ESEC criteria of employment relations and ownership of the means of production.

For more information on this class schema, please check the references below:

  • Florian R. Hertel, Carlo Barone, Oscar Smallenbroek (2024) The multiverse of social class. A large-scale assessment of macro-level, meso-level and micro-level approaches to class analysis. (Under review)

A prototype of MSECS was created based on ESEG and is documented in "Allocation rules of ISCO-08 and ISCO-88 (COM) 3-digit codes to ESEG-Revised" from Oscar Smallenbroek, Florian Hertel and Carlo Barone. For more info, please contact the authors. This 'proto' version of MSEC was the default translation for all isco_*_to_msec`` functions in this package. As of the 12th of January 2025 the proto version is **not** the default, but instead the new MSEC documented here. For users that aim to reproduce previous analysis before this date, please set proto = TRUE`.

The example sections contain some examples on how to switch between the proto and current version.

This function will accept 3 digit codes as 4 digits. This means that if the 3-digit code is 131 then it should be 1310. All codes should be 4 digits, even though the code is represented as 3-digits (1310, 1320, etc..)

Examples

library(dplyr)

# convert to three digits
ess$isco08_three <- isco08_swap(ess$isco08, from = 4, to = 3)
ess$isco88com_three <- isco88_swap(ess$isco88com, from = 4, to = 3)

# isco08
ess %>%
  transmute(
    isco08_three,
    msec_label = isco08_to_msec(
      isco08_three,
      is_supervisor,
      self_employed,
      emplno,
      label = TRUE
    ),
    msec = isco08_to_msec(
      isco08_three,
      is_supervisor,
      self_employed,
      emplno,
      label = FALSE
    ),
     # Proto translation. See details for more information on what proto is.
    msec_proto_label = isco08_to_msec(
      isco08_three,
      is_supervisor,
      self_employed,
      emplno,
      label = TRUE,
      proto = TRUE
    ),
    msec_proto = isco08_to_msec(
      isco08_three,
      is_supervisor,
      self_employed,
      emplno,
      label = FALSE,
      proto = TRUE
    )
  )
#> # A tibble: 48,285 × 5
#>    isco08_three msec_label                     msec  msec_proto_label msec_proto
#>    <chr>        <chr>                          <chr> <chr>            <chr>     
#>  1 5410         Armed forces                   52    Non-Commissione… 35        
#>  2 1320         Lower managers                 30    Lower Managemen… 14        
#>  3 3130         Technical supervisors          80    Skilled Labor S… 60        
#>  4 7130         Technical supervisors          80    Skilled Labor S… 60        
#>  5 6110         Primary production workers     100   Agricultural Em… 74        
#>  6 6110         Technical supervisors          80    Skilled Labor S… 60        
#>  7 9310         Technical supervisors          80    Skilled Labor S… 60        
#>  8 1310         Lower managers                 30    Lower Managemen… 14        
#>  9 1310         Primary production self-emplo… 70    Agricultural Se… 41        
#> 10 6110         Technical supervisors          80    Skilled Labor S… 60        
#> # ℹ 48,275 more rows

# isco88com
ess %>%
  transmute(
    isco88com_three,
    msec_label = isco88com_to_msec(
      isco88com_three,
      is_supervisor,
      self_employed,
      emplno,
      label = TRUE
    ),
    msec = isco88com_to_msec(
      isco88com_three,
      is_supervisor,
      self_employed,
      emplno,
      label = FALSE
    ),
    # Proto translation. See details for more information on what proto is.
    msec_proto_label = isco88com_to_msec(
      isco88com_three,
      is_supervisor,
      self_employed,
      emplno,
      label = TRUE,
      proto = TRUE
    ),
    msec_proto = isco88com_to_msec(
      isco88com_three,
      is_supervisor,
      self_employed,
      emplno,
      label = FALSE,
      proto = TRUE
    )
  )
#> # A tibble: 48,285 × 5
#>    isco88com_three msec_label                  msec  msec_proto_label msec_proto
#>    <chr>           <chr>                       <chr> <chr>            <chr>     
#>  1 5160            Armed forces                52    Associate Profe… 50        
#>  2 1220            Lower managers              30    Lower Managemen… 14        
#>  3 8120            Routine industrial workers  110   Stationary Plan… 64        
#>  4 7140            Technical supervisors       80    Skilled Labor S… 60        
#>  5 6110            Primary production workers  100   Agricultural Em… 74        
#>  6 6110            Technical supervisors       80    Skilled Labor S… 60        
#>  7 9310            Technical supervisors       80    Skilled Labor S… 60        
#>  8 1220            Lower managers              30    Lower Managemen… 14        
#>  9 1220            Self-employed white-collar… 61    Small Entrepren… 40        
#> 10 6110            Technical supervisors       80    Skilled Labor S… 60        
#> # ℹ 48,275 more rows