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
_images/compare1.png

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
_images/compare2.png

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