Skip to contents

This function translates a vector of 3-digit ISCO08/ISCO08COM codes to ESEC codes using the translation tables stored in all_schema$isco08_to_esec / all_schema$isco88com_to_esec_three.

Usage

isco08_to_esec(
  x,
  is_supervisor,
  self_employed,
  n_employees,
  label = FALSE,
  to_factor = FALSE
)

isco88com_to_esec(
  x,
  is_supervisor,
  self_employed,
  n_employees,
  full_method = TRUE,
  label = FALSE,
  to_factor = 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 ESEC 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 ESEC found in all_labels (default is FALSE).

full_method

a boolean on whether to apply the full method or the simple method.

Value

A character vector of ESEC codes.

Details

This translation was taken from the iscogen Stata package. For more details, check out the package documentation and search for ISCO08/ISCO88COM -> ESEC.

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

ISCO88COM has two types of translations: simple and full method. The full method uses information on whether the respondent is a supervisor, self-employed and the number of subordinates of the employee. In contrast, the simple method matches directly the ISCO code to an ESEC code.

For more info, please see page 17 of the European Socio-economic Classification (ESeC) User Guide (2006) by Rode, D. and Harrison, E.

The translation for ISCO88 is done from ISCO88COM which is not ISCO88. If you have ISCO88, you can translate it to ISCO88COM using the function DIGCLASS::isco88_to_isco88com before translating to ESEC.

Contrary to ISCO88COM-ESEC, ISCO08 does not have a simplified method and the translation is done from ISCO08 directly to ESEC.

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

Examples

library(dplyr)

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

ess %>%
  transmute(
    isco08_three,
    esec = isco08_to_esec(
      isco08_three,
      is_supervisor,
      self_employed,
      emplno,
      label = FALSE
    ),
    esec_label = isco08_to_esec(
      isco08_three,
      is_supervisor,
      self_employed,
      emplno,
      label = TRUE
    )
  )
#> # A tibble: 48,285 × 3
#>    isco08_three esec  esec_label                                                
#>    <chr>        <chr> <chr>                                                     
#>  1 5410         3     'Intermediate occupations'                                
#>  2 1320         2     'Lower mgrs/professionals, higher supervisory/technicians'
#>  3 3130         6     'Lower supervisors and technicians'                       
#>  4 7130         6     'Lower supervisors and technicians'                       
#>  5 6110         8     'Lower technical'                                         
#>  6 6110         6     'Lower supervisors and technicians'                       
#>  7 9310         6     'Lower supervisors and technicians'                       
#>  8 1310         2     'Lower mgrs/professionals, higher supervisory/technicians'
#>  9 1310         5     'Small employers and self-employed (agriculture)'         
#> 10 6110         6     'Lower supervisors and technicians'                       
#> # ℹ 48,275 more rows

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

# Using the full method
ess %>%
  transmute(
    isco88com_three,
    esec_label = isco88com_to_esec(
      isco88com_three,
      is_supervisor,
      self_employed,
      emplno,
      label = TRUE,
      full_method = TRUE
    ),
    esec_no_label = isco88com_to_esec(
      isco88com_three,
      is_supervisor,
      self_employed,
      emplno,
      label = FALSE,
      full_method = TRUE
    )
  )
#> # A tibble: 48,285 × 3
#>    isco88com_three esec_label                                      esec_no_label
#>    <chr>           <chr>                                           <chr>        
#>  1 5160            'Intermediate occupations'                      3            
#>  2 1220            'Lower mgrs/professionals, higher supervisory/… 2            
#>  3 8120            'Routine'                                       9            
#>  4 7140            'Lower supervisors and technicians'             6            
#>  5 6110            'Lower technical'                               8            
#>  6 6110            'Lower supervisors and technicians'             6            
#>  7 9310            'Lower supervisors and technicians'             6            
#>  8 1220            'Lower mgrs/professionals, higher supervisory/… 2            
#>  9 1220            'Small employers and self-employed (non-agricu… 4            
#> 10 6110            'Lower supervisors and technicians'             6            
#> # ℹ 48,275 more rows

# Using the simple method
ess %>%
  transmute(
    isco88com_three,
    esec_simple = isco88com_to_esec(
      isco88com_three,
      label = FALSE,
      full_method = FALSE
    ),
    esec_simple_label = isco88com_to_esec(
      isco88com_three,
      label = TRUE,
      full_method = FALSE
    )
  )
#> # A tibble: 48,285 × 3
#>    isco88com_three esec_simple esec_simple_label                                
#>    <chr>           <chr>       <chr>                                            
#>  1 5160            7           'Lower sales and service'                        
#>  2 1220            2           'Lower mgrs/professionals, higher supervisory/te…
#>  3 8120            9           'Routine'                                        
#>  4 7140            8           'Lower technical'                                
#>  5 6110            5           'Small employers and self-employed (agriculture)'
#>  6 6110            5           'Small employers and self-employed (agriculture)'
#>  7 9310            9           'Routine'                                        
#>  8 1220            2           'Lower mgrs/professionals, higher supervisory/te…
#>  9 1220            2           'Lower mgrs/professionals, higher supervisory/te…
#> 10 6110            5           'Small employers and self-employed (agriculture)'
#> # ℹ 48,275 more rows