Compare variables¶
Confronta le distribuzioni di frequenze di una o più variabili.
Importante
Se è attivo un filtro, l’elaborazione verrà limitata ai casi attivi.
compare¶
compare definisce un oggetto che contiene gli elementi verso cui verranno confrontate in seguito le variabili.
Argomenti:
- varname|varlist: il nome di una variabie o una lista di nomi di variabili. Se si utilizza una lista, i confronti dovranno essere fatto con (.with()) delle liste di variabili con lo stesso numero di elementi. Se si utilizza una sola variabile, potrà essere confrontata con una o più variabili.
- :stat => :count|:pct: il tipo di dato che deve essere confrontato (default :count)
- :round => n: il numero di decimali da utilizzare per il confronto (default 0 per i valori assoluti, 1 per le percentuali)
- :weight => true|false: true utilizza dati pesati se è attivo un peso, false utilizza dati non pesati (default :true)
Metodi:
- save: salva gli elementi da confrontare per un successivo utilizzo
- with: definisce la variabile o le variabili con le quali effettuare il confronto. Argomenti:
- varlist: il nome della variabile o l’elenco dei nomi delle variabili
- :weight => true|false: true utilizza dati pesati se è attivo un peso, false utilizza dati non pesati (default come definito in compare)
- check: effettua il confronto. Argomenti:
- :name|:levels|:freq: gli elementi da controllare (default :levels, :freq)
- check!: effettua il confronto e interrompe lo script in caso di fallimento
1 | compare(:v1).with(:v20).check
|

Gli elementi da comparare possono essere presenti in punti differenti dello script, pertanto il risultato di compare può essere memorizzato in un oggetto e utilizzato più avanti nello script:
1 2 3 | comp_d1 = compare(:v1)
...
comp_d1.with(:v2, :v3).check
|

Al posto di una variabile reale, è possibile utilizzare, come elemento di confronto, un hash con i dati attesi:
1 2 3 4 5 | x1 = {
:counts => {1=>54, 2=>52, 3=>49, 4=>50, 9=>40},
:levels => {1=>"Molto", 2=>"Abbastanza d'accordo", 3=>"Poco", 4=>"Per Niente", 9=>"Non indica"},
}
compare(:x1 => x1, :stat => :pct).with(:v1_1).check
|
load_compare¶
Nel caso gli elementi da comparare siano presenti in script differenti, è possibile salvare il risultato di compare su disco e ricaricarlo in seguito in un altro script:
1 2 3 4 5 6 7 8 9 10 | ### script A
compare(:d100).save
...
### script B, esempio 1
load_compare(:d100).with(:d200, :d300).check
### script B, esempio 2
comp_d100 = load_compare(:d100)
comp_d100.with(:d200, :d300).check
|