Skip to contents

This function translates a vector of 4-digit ISCO88/ISCO68 codes to EGP11/EGP7/EGP5/EGP3 codes using the translation tables stored in all_schema$isco88_to_egp11 / all_schema$isco68_to_egp11 / all_schema$egp11_to_egp7 / all_schema$egp11_to_egp5 / all_schema$egp11_to_egp3.

Usage

isco88_to_egp(
  x,
  self_employed,
  n_employees,
  n_classes = 11,
  label = FALSE,
  to_factor = FALSE
)

isco68_to_egp(
  x,
  self_employed,
  n_employees,
  n_classes = 11,
  label = FALSE,
  to_factor = FALSE
)

Arguments

x

A character vector of 4-digit ISCO codes.

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.

n_classes

a numeric value indicating the number of EGP classes to obtain. Default is 11 EGP classes. The possible values are 11 classes, 7 classes, 5 classes and 3 classes. For more information, see the details section.

label

A logical value indicating whether to return the labels of the translated EGP 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 EGP found in all_labels (default is FALSE).

Value

A character vector of EGP codes.

Details

This function works by first translating to EGP11 and then translating to other EGP variants, if the user has requested this through the n_classes argument.

This translation was taken from the iscogen Stata package. For more details, check out the package documentation and search for ISCO88/IS68 -> EGP11. For translations between EGP11 and EGP7/EGP5/EGP3, see the source of the occupar R package here.

Users can see the translation used in this package in all_schema$egp11_to_egp7, all_schema$egp11_to_egp5 and all_schema$egp11_to_egp3. Moreover, the labels used can be found in all_labels$egp11, all_labels$egp7, all_labels$egp5 and all_labels$egp3.

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

  • Erikson, R., Goldthorpe, J.H. and Portocarero, L (1979) Intergenerational Class Mobility inThree Western European Societies: England, France and Sweden’, British Journal of Sociology, 30.

  • Erikson, R., J.H. Goldthorpe, L. Portocarero (1983) Intergenerational Class Mobility and the Convergence Thesis: England, France and Sweden. British Journal of Sociology, 34(3): 303-343.

  • Erikson R, Goldthorpe JH (1992) The Constant Flux: A Study of Class Mobility in Industrial Societies. Oxford: Clarendon Press.

  • Goldthorpe class scheme. Oxford Reference. Retrieved 19 May. 2023, from https://www.oxfordreference.com/view/10.1093/oi/authority.20110803095858703.

  • Goldthorpe JH (2007) Social class and the differentiation of employment contracts. In: Goldthorpe JH (ed.) On Sociology: Volume Two. Stanford: Stanford University Press,101–124.

Examples

library(dplyr)

# isco88
ess %>% transmute(
  isco88,
  egp11 = isco88_to_egp(isco88, self_employed, emplno, label = FALSE),
  egp7 = isco88_to_egp(isco88, self_employed, emplno, n_classes = 7, label = FALSE),
  egp5 = isco88_to_egp(isco88, self_employed, emplno, n_classes = 5, label = FALSE),
  egp3 = isco88_to_egp(isco88, self_employed, emplno, n_classes = 3, label = FALSE),
)
#> # A tibble: 48,285 × 5
#>    isco88 egp11 egp7  egp5  egp3 
#>    <chr>  <chr> <chr> <chr> <chr>
#>  1 5169   9     6     4     3    
#>  2 1222   1     1     1     1    
#>  3 8120   8     5     4     3    
#>  4 7141   8     5     4     3    
#>  5 6111   10    7     5     3    
#>  6 6111   10    7     5     3    
#>  7 9313   9     6     4     3    
#>  8 1221   11    7     3     2    
#>  9 1221   11    7     3     2    
#> 10 6111   10    7     5     3    
#> # ℹ 48,275 more rows

# isco68
ess %>% transmute(
  isco68,
  egp11 = isco68_to_egp(isco68, self_employed, emplno, label = FALSE),
  egp7 = isco68_to_egp(isco68, self_employed, emplno, n_classes = 7, label = FALSE),
  egp5 = isco68_to_egp(isco68, self_employed, emplno, n_classes = 5, label = FALSE),
  egp3 = isco68_to_egp(isco68, self_employed, emplno, n_classes = 3, label = FALSE)
)
#> # A tibble: 48,285 × 5
#>    isco68 egp11 egp7  egp5  egp3 
#>    <chr>  <chr> <chr> <chr> <chr>
#>  1 5890   6     4     2     1    
#>  2 2120   2     2     1     1    
#>  3 7200   8     5     4     3    
#>  4 9310   8     5     4     3    
#>  5 6220   10    7     5     3    
#>  6 6220   10    7     5     3    
#>  7 9595   9     6     4     3    
#>  8 6000   11    7     3     2    
#>  9 6000   11    7     3     2    
#> 10 6220   10    7     5     3    
#> # ℹ 48,275 more rows