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.