Variabili: etichette e livelli¶
In relazione alle etichette delle variabile si veda anche File di dati>Metadati e le funzioni get_label, get_labels, get_levels, get_levels.
Un modo per lavorare sulle etichette senza doverle ridigitare, è quello di far stampare le vecchie etichette e incollarle nello script:
1 2 3 4 | p get_levels(:titolo) # => stampa nel log: {1=>"nessun titolo-elementare", 2=>"Media inferiore", 3=>"Media superiore", 4=>"Laurea"}
# copia e incolla nello script per modificarle:
levels :titolo => {1=>"Nessun titolo/Elementare", 2=>"Media inferiore", 3=>"Media superiore", 4=>"Laurea"}
|
label¶
Imposta l’etichetta della variabile.
1 2 3 4 5 | label var => label, varlist => label
label :sex => "Sesso dell'intervistato"
label :sex => "SESSO", :area => "MACROAREA"
label [:mcr1, :mcr2, :mcr3] => "MACROAREA"
|
levels¶
Imposta le etichette dei livelli.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | levels var => labels, ...
levels :sesso => ['M', 'F']
levels var => {level => label, level => label}, ...
levels :area => {3 => "CENTRO", 4 => "Sud e Isole"}
levels :sesso => ['M', 'F'], :area => {3 => "CENTRO", 4 => "Sud e Isole"}
levels varlist => ...
levels s(:r100,8) => ["Sì", "No"]
# elimina le etichette
levels :v1 => {}
levels :v1 => nil
levels :v1
|
add_label¶
Aggiunge la stringa specificata all’etichetta della variabile.
- :sep => "" permette di specificare una stringa di separazione (default ""). Nel caso l’etichetta originaria sia vuota, non viene inserito nessun carattere di separazione
- :pos => :left|:right specifica se la stringa deve essere messa a sinistra/inizio o a destra/fine (default :right)
1 2 3 4 5 | add_label varlist => labels, :sep => "string", :pos => :right
add_label :v1 => " / (Totale)"
add_label s(:v2_,3) => ["X", "Y", "Z"], :sep => "_"
add_label :v3.to(:v10) => "SEZ.1 - ", :pos => :left
|
add_levels¶
Aggiunge o sostituisce nuove etichette di livelli.
1 2 3 4 5 | add_levels varlist => levels
add_levels :v1 => {98 => "Non sa", 99 => "Non risponde"}
add_levels [:v10,:v20] => {99 => "Non sa"}
add_levels s(:v3_,10) => {7 => "Rosso"}
|
autolevels¶
Inserisce delle etichette uguali ai valori della variabile. Se la variabile ha già etichette, inserisce solo eventuali nuove etichette per livelli non ancora etichettati.
copy_label¶
Etichetta una o più variabili con l’etichetta di altre variabili.
1 2 3 4 5 6 | copy_label var|varlist => var|varlist
copy_label :v1 => :r1
copy_label :v1 => [:r11, :r12, :r13]
copy_label [:v7_1, :v7_2, :c7_3] => [:x7_1, :x7_2, :x7_3]
|
copy_levels¶
Etichetta i livelli di una o più variabili con le etichette dei livelli di altre variabili.
1 2 3 4 5 6 | copy_levels var|varlist => var|varlist
copy_levels :v1 => :r1
copy_levels :v1 => [:r11, :r12, :r13]
copy_levels [:v7_1, :v7_2, :c7_3] => [:x7_1, :x7_2, :x7_3]
|
copy_labels¶
Esegue in successione copy_label e copy_levels.
relevel¶
Riordina i livelli di una o più variabili riordinando anche le etichette. Agisce ricodificando i codici delle variabile.
Argomenti:
- varlist: l’elenco dei nomi delle variabili
- valuelist: l’elenco dei codici della variabile nell’ordine desiderato
- :a [,endcodes]: ordina alfabeticamente le etichette (endcodes = livelli da tenere in fondo)
- :d [,endcodes]: ordina alfabeticamente le etichette in senso decrescente(endcodes = livelli da tenere in fondo)
- :seq [,start]: rinumera sequenzialmente i livelli partendo da 1 o da start
- :rev [,endcodes]: inverte l’ordine dei livelli (endcodes = livelli da tenere in fondo)
- :freq [,endcodes]: ordina in base alle frequenze pesate in senso crescente (endcodes = livelli da tenere in fondo)
- :dfreq [,endcodes]: ordina in base alle frequenze pesate in senso decrescente (endcodes = livelli da tenere in fondo)
- :freq_u [,endcodes]: ordina in base alle frequenze non pesate in senso crescente (endcodes = livelli da tenere in fondo)
- :dfreq_u [,endcodes]: ordina in base alle frequenze non pesate in senso decrescente (endcodes = livelli da tenere in fondo)
- :top, valuelist: sposta i codici indicati all’inizio
- :bottom, valuelist: sposta i codici indicati alla fine
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # riordina i livelli della variabile v1
relevel :v1, 3, 2, 5, 4, 1
# riordina le etichette della variabile :brand in senso alfbetico, lasciando in fondo i codici 98 e 99
relevel :brand, :a, [98,99]
# inverte l'ordine dei livelli della variabile v2 ad eslusione del codice 9 che viene tenuto in fondo
relevel :v2, :rev, 9
# riordina i livelli in base alle frequenze
relevel [:v3, :v4, :v5], :freq
# riordina i livelli in base alle frequenze in senso decrescente
relevel s(:101_,7), :dfreq
# sposta i codici 5 e 7 all'inizio
relevel :v3, :top, 7, 5
# sposta il codice 1 in fondo
relevel :v3, :bottom, 1
# rinumera i livelli partendo da 1
relevel :brand, :seq
|
reverse¶
Riordina i livelli di una o più variabili invertendo i codici e riordinando anche le etichette (cfr. relevel).
Argomenti:
- varlist: l’elenco dei nomi delle variabili
- valuelist: l’elenco dei codici che devono rimanere invariati
1 2 3 4 5 | reverse :v1
reverse s(:v2_,10), 9
reverse :v3, 98, 99
|
changelev¶
Modifica i codici di una variabile, spostando anche le etichette (cfr. relevel).
Argomenti:
- varlist: l’elenco dei nomi delle variabili
- valuepairs|:compact: le coppie di codici da modificare con il vecchio e il nuovo valore o :compact per ricodificare in modo progressivo a partire da 1 i livelli della variabile
1 2 3 4 5 | changelev :d5 => {0 => 9}
changelev :x10 => {0=>1, 1=>0}
changelev :marche => :compact
|
switch¶
Scambia due livelli di una o più variabili scambiando anche le etichette (cfr. relevel).
1 2 3 | switch :x10, 1, 0
switch :v30, 70, 75
|
lprefix¶
Aggiunge un prefisso alle etichette dei livelli della variabile.
1 2 3 4 | lprefix varlist => prefix
lprefix :v123 => "Kg. "
lprefix [:v123.1,:v123.2] => "Kg. "
|
lsuffix¶
Aggiunge un suffisso alle etichette dei livelli della variabile.
1 2 3 4 | lsuffix varlist => suffix
lsuffix :etaf => " anni"
lsuffix [:eta1f, :eta2f, :eta3f] => " anni"
|
label_to_level¶
Copia l’etichetta della variabile come etichetta di un livello.
1 2 3 | label_to_level varlist => level_id
label_to_level s(d7_,10) => 1
|
level_to_label¶
Copia l’etichetta di livello come etichetta della variabile.
1 2 3 | level_to_label level_id => varlist
level_to_label 1 => s(d7_,10)
|
simplify_labels¶
Elimina da un set di variabili la parte uguale dell’etichetta.
Argomenti:
- varlist: l’elenco delle variabili
- drop_from => string|regex: (opzionale) una stringa o una espressione regolare che definisce il testo a partire dal quale l’etichetta va ripulita fino alla fine. E’ utile quando le etichette sono state troncate e il testo superfluo rimasto in fondo all’etichetta è differente per ciascuna variabile
1 2 3 4 5 | simplify_labels s(:d19_,6)
simplify_labels s(:d19_,6), :drop_from => " Rispondere su una"
simplify_labels s(:d19_,6), :drop_from => / \*\(Rispondere/
|
simplify_levels¶
Elimina da un set di variabili la parte uguale dell’etichetta di uno dei livelli.
Argomenti:
- varlist: l’elenco delle variabili
- code: il codice del livello su cui agire (default 1)
- drop_from => string|regex: (opzionale) una stringa o una espressione regolare che definisce il testo a partire dal quale l’etichetta va ripulita fino alla fine. E’ utile quando le etichette sono state troncate e il testo superfluo rimasto in fondo all’etichetta è differente per ciascuna variabile
1 2 3 | simplify_levels s(:d19_,6)
simplify_levels s(:d19_,6), 1
|
drop_levels¶
Elimina tutti i livelli della variabile che hanno frequenza uguale a zero.
1 2 3 4 | drop_levels varlist
drop_levels :d1
drop_levels [:d1, :d2, :d3]
drop_levels s(:x10_,8)
|
delete_levels¶
Elimina le etichette dei livelli specificati della variabile. Eventuali dati presenti per quei livelli non verranno modificati.
1 2 3 4 | delete_levels :d1 => 99
delete_levels [:d2, :d3] => 9
delete_levels :d4 => [0,99]
delete_levels :d5 => 97..99
|