Restringe un dataset di rapporti di lavoro alle tipologie contrattuali
alle quali si applica un contratto collettivo, oppure al perimetro
"standard" di cnelR, e riporta nei metadati quante righe sono state
escluse e per quale tipologia. Alcuni avviamenti presenti nelle
Comunicazioni Obbligatorie non sono rapporti di lavoro subordinato
(collaborazioni e parasubordinati, contratti di agenzia, tirocini e work
experience, associazione in partecipazione, lavoro autonomo nello
spettacolo, lavoro congiunto in agricoltura): includerli nelle
classifiche dei CCNL distorce le misure di rilevanza. L'esclusione è
sempre conteggiata e segnalata, mai silenziosa.
Usage
filter_perimetro(
dt,
perimetro = c("ccnl", "standard", "completo"),
tipologie = ccnlcob::tipologie_contrattuali
)Arguments
- dt
Un
data.tablecon la colonnacod_tipologia_contrattuale(codice MLPS); può essere il dato grezzo o l'uscita diprepare_rapporti(). Non viene modificato.- perimetro
Perimetro da applicare:
"ccnl"(default): conserva i rapporti conperimetro_ccnl == TRUEnel lookup; i codici ignoti vengono esclusi;"standard": conserva i rapporti conesclusa_standard == FALSE(perimetro dicnelR); i codici ignoti vengono conservati;"completo": conserva tutte le righe.
- tipologie
Lookup delle tipologie contrattuali con le colonne
cod_tipologia_contrattuale,perimetro_ccnleesclusa_standard(le colonnedes_tipologia_contrattualeemacro_tipologia, se presenti, arricchiscono la tabella degli esclusi); default tipologie_contrattuali.
Value
Un nuovo data.table con le righe di dt interne al perimetro,
la colonna perimetro_ccnl e l'attributo ccnlcob_perimetro. L'input
non viene modificato.
Details
Regole del perimetro CCNL
Il flag perimetro_ccnl di tipologie_contrattuali è derivato dal
prefisso del codice MLPS. Appartengono al perimetro tutti i codici A.
(tempo indeterminato e determinato, apprendistato inclusi il contratto di
formazione lavoro A.03.04 e l'inserimento A.03.07, lavoro domestico
A.04.*, intermittente, somministrazione, ripartito, a domicilio), i
codici F. (lavoro marittimo), G.01.00 e G.02.00 (spettacolo
subordinato), H.01.00 e H.03.00 (agricoltura subordinata), I.
(pubblica amministrazione) e N. (lavoro con piattaforma). Restano
fuori i codici B. (collaborazioni, lavoro occasionale,
parasubordinati), C. (tirocini, LSU, borsa lavoro e work experience),
G.03.00 (lavoro autonomo nello spettacolo), H.02.00 (lavoro
congiunto in agricoltura), L. (associazione in partecipazione) e M.
(contratto di agenzia). Un codice assente dal lookup è trattato come
fuori perimetro e conteggiato in n_tipologia_ignota.
Perimetro standard
Il perimetro "standard" riproduce quello di cnelR: esclude solo i
codici con esclusa_standard == TRUE (C.01.00, B.04.00, B.03.00,
A.04.00, A.04.01). I codici ignoti vengono conservati e conteggiati.
Colonna e metadati
Il risultato porta sempre la colonna logica perimetro_ccnl, aggiunta
se assente (una colonna già presente viene conservata così com'è; il
filtro usa comunque il lookup). L'attributo ccnlcob_perimetro è una
lista con perimetro, n_input, n_kept, n_dropped,
n_tipologia_ignota e esclusi, un data.table con le colonne
cod_tipologia_contrattuale, des_tipologia_contrattuale,
macro_tipologia e n (righe escluse per tipologia, in ordine
decrescente di n; zero righe se nulla è stato escluso). Quando
vengono escluse righe o compaiono codici ignoti la funzione emette un
message() riassuntivo, sopprimibile con suppressMessages().
See also
prepare_rapporti(), che applica il filtro in ingresso;
tipologie_contrattuali per le regole.
Other tipologie:
ccnl_by_tipologia(),
classify_tipologia()
Examples
library(data.table)
dt <- filter_perimetro(cob_esempio)
#> filter_perimetro(): perimetro "ccnl", esclusi 254 rapporti su 5000 (5,1%) in 4 tipologie; 0 con tipologia ignota.
nrow(cob_esempio)
#> [1] 5000
nrow(dt)
#> [1] 4746
info <- attr(dt, "ccnlcob_perimetro")
info[c("perimetro", "n_input", "n_kept", "n_dropped", "n_tipologia_ignota")]
#> $perimetro
#> [1] "ccnl"
#>
#> $n_input
#> [1] 5000
#>
#> $n_kept
#> [1] 4746
#>
#> $n_dropped
#> [1] 254
#>
#> $n_tipologia_ignota
#> [1] 0
#>
info$esclusi
#> cod_tipologia_contrattuale
#> <char>
#> 1: C.01.00
#> 2: B.03.00
#> 3: B.04.00
#> 4: C.03.00
#> des_tipologia_contrattuale
#> <char>
#> 1: TIROCINIO
#> 2: COLLABORAZIONE COORDINATA E CONTINUATIVA
#> 3: COLLABORAZIONE OCCASIONALE SPORTIVA EX ART. 28 DEL D.LGS. 36/2021
#> 4: LAVORO O ATTIVITÀ SOCIALMENTE UTILE (LSU - ASU)
#> macro_tipologia n
#> <char> <int>
#> 1: Tirocinio 110
#> 2: Collaborazioni 90
#> 3: Collaborazioni 35
#> 4: Altro 19
# perimetro standard di cnelR e dataset completo
std <- filter_perimetro(cob_esempio, perimetro = "standard")
#> filter_perimetro(): perimetro "standard", esclusi 235 rapporti su 5000 (4,7%) in 3 tipologie; 0 con tipologia ignota.
attr(std, "ccnlcob_perimetro")$esclusi
#> cod_tipologia_contrattuale
#> <char>
#> 1: C.01.00
#> 2: B.03.00
#> 3: B.04.00
#> des_tipologia_contrattuale
#> <char>
#> 1: TIROCINIO
#> 2: COLLABORAZIONE COORDINATA E CONTINUATIVA
#> 3: COLLABORAZIONE OCCASIONALE SPORTIVA EX ART. 28 DEL D.LGS. 36/2021
#> macro_tipologia n
#> <char> <int>
#> 1: Tirocinio 110
#> 2: Collaborazioni 90
#> 3: Collaborazioni 35
tutto <- filter_perimetro(cob_esempio, perimetro = "completo")
tutto[, .N, by = perimetro_ccnl]
#> perimetro_ccnl N
#> <lgcl> <int>
#> 1: TRUE 4746
#> 2: FALSE 254