Translate 3-digit ISCO08/ISCO88COM to ESEC
isco08_to_esec.Rd
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 isFALSE
).- full_method
a boolean on whether to apply the full method or the simple method.
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:
Resource website of the European Socio-economic Classification (ESeC): https://www.iser.essex.ac.uk/archives/esec
Derivation material: https://www.iser.essex.ac.uk/archives/esec/user-guide/derivation-material
Rose, D. and Harrison, E. (2007) ‘The European Socio-economic Classification: A New Social Class Schema for European Research’, European Societies, 9, 3: 459-490. https://doi.org/10.1080/14616690701336518
Rose D, Harrison E (2010) Social Class in Europe. An Introduction to the European Socio-economic Classification. London: Routledge.
Wirth, H. (2023). EU-SILC Tools: European Socioeconomic Classification - ESeC88 and ESeC08. (GESIS Papers, 2023/01). Köln: GESIS - Leibniz-Institut für Sozialwissenschaften. https://doi.org/10.21241/ssoar.83962
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