Orchestra, su una copia di dt, l'intera catena del pacchetto:
prepare_rapporti(), compute_giornate_effettive(), add_cpi(),
rank_ccnl(), select_ccnl_rilevanti(), ccnl_by_cpi(),
ccnl_by_tipologia(), clean_retribuzione(), normalize_fte(),
median_retribuzione() e deflate_retribuzione(). Restituisce un
oggetto di classe ccnlcob_result con le tabelle precomputate per
dashboard e report, da serializzare con write_results(). I blocchi
facoltativi (giornate effettive, CPI, retribuzioni, deflazione) vengono
saltati, con motivazione registrata in meta$passi_saltati, quando le
colonne o le risorse necessarie non sono disponibili; un input non valido
produce invece un errore.
Usage
analyze_ccnl(
dt,
as_of = NULL,
window = NULL,
perimetro = c("ccnl", "standard", "completo"),
ccnl_key = c("codice_cnel", "ccnl_warehouse"),
chiavi_non_classificate = "CPUB",
measure = "giornate",
top_n = 20,
cum_share = 0.8,
geo = c("sede_lavoro", "residenza"),
lookup_cpi = NULL,
periodo = c("anno", "trimestre"),
indice = NULL,
base = NULL,
effettive = TRUE,
min_n = 30L,
tipologie = ccnlcob::tipologie_contrattuali,
quiet = TRUE
)Arguments
- dt
Un
data.tabledi rapporti conforme avalidate_rapporti(). Non viene modificato.- as_of
Data di riferimento (
Dateo stringa convertibile) per lo stato dei rapporti (attivo) e per la chiusura dei rapporti aperti;NULL(default) usa la data massima non sentinella osservata frainizioefinee non successiva alla data odierna, cioè la data di riferimento dei dati; le date di fine future (fini presunte o valori errati come2999-12-31) non concorrono al default e vengono trattate come rapporti aperti (fine > as_of).- window
Vettore di due
Date(o stringhe convertibili),c(inizio, fine), che delimita l'analisi;NULL(default) usac(min(inizio), as_of), dove il minimo è calcolato sugli avviamenti non sentinella.- perimetro
Perimetro contrattuale applicato da
filter_perimetro()prima di ogni altro trattamento:"ccnl"(default) conserva solo le tipologie di lavoro subordinato alle quali si applica un CCNL;"standard"conserva il perimetro "standard" dicnelR;"completo"non esclude nulla. Vedi Dettagli.- ccnl_key
Colonna da usare come chiave CCNL di analisi:
"codice_cnel"(codice CNEL a 4 caratteri prodotto dacnelR) oppure"ccnl_warehouse"(codice warehouse CO). Con il default (entrambe) viene usata la prima colonna presente indt; se una colonna richiesta esplicitamente è assente la funzione produce un errore.- chiavi_non_classificate
Vettore character di valori di
ccnl_keyda trattare come non classificati (NAinccnl_key), oppureNULLper non escludere nulla. Default"CPUB": codice di comodo del bridge dicnelRper il pubblico impiego, non un CCNL misurabile. Vedi Dettagli.- measure
Misura di rilevanza usata per selezionare i CCNL e per la distribuzione per CPI: una fra
"n_rapporti","n_lavoratori","n_datori","giornate"(default),"giornate_effettive","stock".- top_n
Numero massimo di CCNL rilevanti; vedi
select_ccnl_rilevanti().Soglia di quota cumulata per la selezione dei CCNL rilevanti; vedi
select_ccnl_rilevanti().- geo
Geografia per il CPI (
"sede_lavoro"o"residenza"); vediadd_cpi().- lookup_cpi
Lookup esplicito comune -> CPI (colonne
belfiore,cpi_code,cpi_name) passato adadd_cpi();NULLusalongworkRse installato e se i file di mapping inSHARED_DATA_DIRsono presenti, altrimenti il blocco CPI viene saltato.- periodo
Periodo di avviamento per le serie temporali (
"anno"o"trimestre").- indice
data.tableopzionale con la colonna di periodo (chiamata comeperiodooppureperiodo) e la colonnaindiceper la deflazione delle retribuzioni;NULLper omettere i valori reali.- base
Periodo base per la deflazione;
NULLusa l'ultimo periodo presente. Vedideflate_retribuzione().- effettive
Se
TRUE(default) calcolagiornate_effettivee la include fra le misure del ranking.- min_n
Numerosità minima sotto la quale i quozienti di localizzazione e i quantili di retribuzione vengono mascherati.
- tipologie
Lookup delle tipologie contrattuali con le colonne
cod_tipologia_contrattuale,macro_tipologia,perimetro_ccnleesclusa_standard; default tipologie_contrattuali.- quiet
Se
TRUE(default) sopprime imessage()dei passi intermedi.
Details
Componenti del risultato:
meta: lista conversione,as_of,window,perimetro,ccnl_key,chiavi_non_classificate,measure,n_input,n_finestra,n_rapporti,n_lavoratori,copertura_ccnl,copertura_retribuzione,passi(passi eseguiti),passi_saltati(vettore nominato passo -> motivo),preparazione(attributoccnlcob_metadiprepare_rapporti()) etempi(secondi per passo);rankingeranking_periodo: output dirank_ccnl()sull'intera finestra e perperiodo, con le misuren_rapporti,n_lavoratori,n_datori(sedatoreè presente),giornate,giornate_effettive(se calcolate) estock;rilevanti: tabella diselect_ccnl_rilevanti()con il residuo "Altri CCNL";keys: le chiavi selezionate;cpi: output diccnl_by_cpi()sui CCNL rilevanti (NULLse saltato);tipologie: output diccnl_by_tipologia()(macro-tipologia per orario, misuran_rapporti) sui CCNL rilevanti;retribuzioni: output dimedian_retribuzione()sui CCNL rilevanti, con le colonne_realeseindiceè fornito (NULLse la colonnaretribuzionemanca);qualita: perccnl_key(inclusi i non classificati)nrighe,n_rapportiavviati,quota_troncata,copertura_retribuzione,copertura_ore(part-time con ore valide),copertura_cpi(righe con CPI lombardo);NAdove il blocco non è stato calcolato.
See also
write_results() per la serializzazione.
Other orchestrazione:
print.ccnlcob_result(),
write_results()
Examples
res <- analyze_ccnl(
cob_esempio,
window = as.Date(c("2022-01-01", "2024-12-31")),
lookup_cpi = cpi_esempio,
top_n = 10,
min_n = 10
)
res
#> <ccnlcob_result>
#> versione: 0.7.0
#> as_of: 2024-12-31
#> window: 2022-01-01 / 2024-12-31
#> perimetro: ccnl
#> ccnl_key: codice_cnel
#> rapporti: input 5.000, in finestra 2.927, avviati 2.436
#> lavoratori avviati: 371
#> copertura codice CCNL: 83,7%
#> copertura retribuzione: 73,1%
#> CCNL rilevanti: 10 (misura: giornate)
#> primi CCNL:
#> 1. A011 19,1%
#> 2. H011 10,0%
#> 3. T011 7,9%
#> 4. C011 5,1%
#> 5. IC91 4,8%
#> passi saltati:
#> - deflate_retribuzione: nessun `indice` fornito
res$rilevanti[, .(ccnl_key, classe, giornate, quota_giornate)]
#> ccnl_key classe giornate quota_giornate
#> <char> <char> <num> <num>
#> 1: A011 CCNL 118854 0.19057010
#> 2: H011 CCNL 62233 0.09978418
#> 3: T011 CCNL 49468 0.07931682
#> 4: C011 CCNL 31713 0.05084852
#> 5: IC91 CCNL 29904 0.04794797
#> 6: A012 CCNL 23667 0.03794759
#> 7: B011 CCNL 18770 0.03009575
#> 8: E011 CCNL 18163 0.02912249
#> 9: D011 CCNL 17326 0.02778045
#> 10: F011 CCNL 17180 0.02754635
#> 11: Altri CCNL Altri CCNL 129265 0.20726307
#> 12: <NA> Non classificati 107133 0.17177669
res$qualita
#> ccnl_key n n_rapporti quota_troncata copertura_retribuzione
#> <char> <int> <int> <num> <num>
#> 1: A011 534 443 0.2041199 0.7677903
#> 2: A012 111 93 0.1621622 0.7837838
#> 3: B011 91 74 0.2087912 0.6593407
#> 4: C011 163 138 0.1779141 0.7546012
#> 5: C012 27 24 0.1851852 0.7777778
#> 6: D011 81 66 0.2098765 0.7530864
#> 7: E011 75 62 0.2800000 0.7333333
#> 8: F011 82 72 0.1951220 0.6951220
#> 9: G011 60 53 0.2166667 0.7166667
#> 10: H011 308 256 0.2305195 0.7305195
#> 11: H012 64 55 0.2656250 0.7031250
#> 12: H013 34 29 0.2647059 0.7647059
#> 13: I011 68 58 0.2058824 0.6764706
#> 14: IC91 136 106 0.1985294 0.6911765
#> 15: K011 51 43 0.1372549 0.7254902
#> 16: L011 59 50 0.2033898 0.7288136
#> 17: M011 51 43 0.2549020 0.8431373
#> 18: N011 51 47 0.2156863 0.6470588
#> 19: P011 34 29 0.2058824 0.7058824
#> 20: Q011 37 31 0.2162162 0.7567568
#> 21: S011 32 29 0.1250000 0.6875000
#> 22: T011 224 189 0.2321429 0.7410714
#> 23: T012 44 38 0.2045455 0.7500000
#> 24: V011 34 25 0.1764706 0.9117647
#> 25: <NA> 476 383 0.2310924 0.6848739
#> ccnl_key n n_rapporti quota_troncata copertura_retribuzione
#> <char> <int> <int> <num> <num>
#> copertura_ore copertura_cpi
#> <num> <num>
#> 1: 1.0000000 0.9569288
#> 2: 0.9687500 0.9549550
#> 3: 0.9411765 0.9340659
#> 4: 0.9772727 0.9325153
#> 5: 1.0000000 0.9629630
#> 6: 1.0000000 0.9506173
#> 7: 1.0000000 0.9600000
#> 8: 0.9615385 0.9756098
#> 9: 1.0000000 0.9666667
#> 10: 0.9878049 0.9448052
#> 11: 0.9473684 0.9375000
#> 12: 1.0000000 0.9117647
#> 13: 0.9565217 0.9705882
#> 14: 0.9302326 0.9558824
#> 15: 1.0000000 0.9803922
#> 16: 0.9333333 0.9322034
#> 17: 1.0000000 0.9215686
#> 18: 1.0000000 0.9607843
#> 19: 1.0000000 0.9705882
#> 20: 0.9444444 1.0000000
#> 21: 1.0000000 0.9375000
#> 22: 0.9651163 0.9732143
#> 23: 1.0000000 0.9318182
#> 24: 1.0000000 0.9117647
#> 25: 0.9668874 0.9474790
#> copertura_ore copertura_cpi
#> <num> <num>