Check¶
Verifica una serie di regole relative alle variabili e alle loro relazioni all’interno di ciascun record del dataset.
Argomenti:
- varlist: definisce le variabili aggiuntive che devono comparire nelle liste
- :labels => true|false: stampa le etichette accanto ai valori (default false)
- :title => "": il titolo del report
Alternativamente è possibile utilizzare i sottocomandi vars e title nel blocco di istruzioni.
Funzioni:
- is: espr: testa se l’espressione è vera
- is_not: espr: testa se l’espressione è falsa
- if_then: espr1 => espr2: testa se la seconda espressione è vera al verificarsi della prima
- is_in: varname => valuelist: testa se il valore è incluso nella lista
- between: varname => [val1, val2]|range: testa se il valoro è all’interno dei limiti
- min: varname => value: testa se il valore è maggiore o uguale al valore indicato
- max: varname => value: testa se il valore è minore o uguale al valore indicato
- valid: varname: testa se il valore è diverso da blank
- empty: varname: testa se il valore è vuoto
E’ possibile inserire un’etichetta per ciascuna regola con il parametro :label.
Metodi:
- xlsx: salva il report in un file XLSX; è possibile passare il nome del file
- flag: crea un flag per ciascuna regola: è possibile passare il nome della variabile o la lista dei nomi delle variabili da creare
- count: crea una variabile con il numero di errori riscontrati: è possibile passare il nome della variabile e l’etichetta
- lab: avvia ptLab con le variabili e i casi con errori selezionati
- abort: arresta l’esecuzione dello script se vengono riscontrati degli errori
1 2 3 4 5 | check(:ser_no, :eta, :area, :sesso, :title => "Check data test 1", :labels => true) do
is_not "GE(d3n_1,50)"
is_not "GE(d3n_2,120)"
is_not "GE(d3n_3,40)"
end.xlsx.flag.count.lab
|
1 2 3 4 5 6 7 8 | check do
title "Check data test 2"
vars :ser_no, :eta, :area, :sesso
is "v1>100", :label => "v1 deve essere maggiore di 100"
is_in :v2 => [1,2,3]
between :v3 => [1.5, 3.3]
if_then "v4=1" => "v5<10", :label => "quando v4 è uguale a 1, v5 deve essere minore di 10"
end.xlsx("report1").flag(:err_).lab
|
1 | check(:is_not => "v10=1").xlsx.abort
|
Importante
Se è attivo un filtro, check analizza solo i casi attivi.