Metadati

Alcune fonti si dati (xlsx, csv, test, ...) non supportano le etichette o altri metadati, pertanto dopo l’importazione le variabili devono essere etichettate.

In altri casi le etichette presenti nei dati non sono adeguate o devono essere integrate.

label

L’istruzione label permette di modificare le etichette delle variabili.

1
2
3
4
5
6
 excel.open "nome_file_dati", :sheet => "nome_foglio_dati"

 label :sesso => "Sesso"
 label :eta => "Eta'"
 label :area => "Area geografica"
 label :d5 => "Le piace...?"

levels

L’istruzione levels permette di modificare le etichette dei livelli delle variabili.

1
2
3
4
 levels :sesso => { 1=>"Maschio", 2=>"Femmina" }
 levels :area => { 1=>"Nord Ovest", 2=>"Nord Est", 3=>"Centro", 4=>"Sud" }
 levels :d1 => { 1=>"una volta alla settimana o più spesso", 2=>"una volta ogni due settimane", 3=>"una volta ogni tre settimane", 4=>"una volta al mese", 5=>"meno spesso" }
 levels :d5 => { 0=>"Non risponde", 1=>"Per niente d'accordo", 2=>"Poco d'accordo", 3=>"Abbastanza d'accordo", 4=>"Molto d'accordo" }

Tabella di metadati

In alternativa è possibile utilizzare una tabella di metadati che può essere contenuta nello stesso file Excel o nello stesso database che contiene i dati oppure in un file o database differente.

La tabella dei metadati deve contenere obbligatoriamente i campi name, code, label[_xx].

Inoltre è possibile specificare ulteriori campi contenenti altri metadati relativi alle variabili. Il nome del campo deve essere uguale all’attributo della variabile, per esempio: size, ndec, type.

E’ anche possibile inserire le traduzioni delle etichette in altre lingue specificando ulteriori colonne dal nome label_sigla (vedi anche Internazionalizzazione).

L’ordine dei campi non è rilevante.

name code label label_en type size ndec
id   ID intervista ID interview integer 4  
gender   Genere Gender      
gender 1 Maschio Male      
gender 2 Femmina Female      
age   Età Age      
d1   Utilizzatori Users      

0 No No single 1 0

1 Yes      
peso   Variabile ponderazione Weight variable float 2 6
...            

In corrispondenza dell’etichetta della variabile, il campo code deve essere lasciato vuoto.

Sulle righe dei codici è possibile omettere il nome della variabile (non se si usa odbc.labels dato che i record di un database non hanno un ordine predefinito).

La tabella può contenere anche solo i metadati relativi a un sottoinsieme di variabili o specificare i metadati della variabile e non quella dei suoi livelli o viceversa. E’ possibile utilizzare il sottocomando :labels del metodo .open, oppure il metodo .labels dell’oggetto sorgente di dati. Nel caso di xlsx, il sottocomando :labels deve specificare il nome di un foglio presente nello stesso file del file di dati. Se il foglio con i metadati è in un altro file, utilizzare il metodo .labels. Per le altre sorgenti di dati, il sottocomando :labels fa riferimento al nome di un altro file. Com il metodo .labels, il parametro :add => true aggiunge le nuove etichette alle etichette esistenti della variabile invece di sostituirle; il parametro logico :quiet permette di non visualizzare i warning per le variabili mancanti.

1
2
3
4
5
6
 xlsx.open "nome_file", :sheet => "nome_foglio_dati", :labels => "nome_foglio_etichette"

 xlsx.open "nome_file_dati", :sheet => "nome_foglio_dati"
 xlsx.labels "nome_file", :sheet => "nome_foglio_etichette", :quiet => true

 csv.open "nome_file", :keep => vars, :labels => "nome_file_etichette"

Usando file separati, i metadati possono risiedere anche in un file di formato diverso. [1]

1
2
 excel.open "nome_file_dati", :sheet => "nome_foglio_dati"
 spss.labels "nome_file"

Le etichette caricate sono di defaulti quelle corrispondenti alla colonna label. Caricare le etichette di una lingua differente con il parametro language.

1
xlsx.labels "nome_file_dati", :language => :en

Nota

Il metodo labels di spss si comporta diversamente perché utilizza un normale file di dati .sav da cui copia le informazioni delle variabili nelle corrispondenti variabili del file attivo.

xlsx.convert

Con xlsx.convert, la stessa tabella di metadati può essere utilizzata per convertire ed etichettare variabili stringa in variabili numeriche, sostituendo alle etichette trovate i codici corrispondenti. Eventuali specifiche per variabili non stringa presenti nella tabella di metadati verranno ignorate.

  • filename: il nome del file con i metadati
  • :sheet => sheet_name: il nome del foglio
  • :vars => varlist: l’elenco delle variabili da convertire
  • :into => prefix: se specificato, invece di convertire le variabili originarie, crea nuove variabili con quel prefisso
  • :language => value: specifica quale linguaggio usare per le conversioni e le etichette delle variabili
1
2
3
4
5
6
xlsx.convert filename [, :sheet => sheetname, :vars => varlist, :into => rootname

xlsx.convert "labelfile"
xlsx.convert "labelfile", :language => "en"
xlsx.convert "labelfile", :sheet => "legend", :vars => [:sex, :eta]
xlsx.convert "labelfile", :sheet => "legend", :into => 'int_'

cleanlabels.txt

E’ possibile fornire istruzioni per sostituire caratteri e stringhe di testo nelle etichette delle variabilie attraverso il file cleanlabels.txt. Il nome del file può essere modificato impostando il parametro clean_labels_file dei Parametri di configurazione. Il file può essere posto nella cartella pTabs-user o direttamente nella cartella di lavoro o in una cartella genitore della cartella di lavoro.

Il file può contenere singole righe di istruzione secondo il seguente formato:

  • # commenti: righe di commento
  • text|regex: testo o espressione regolare da eliminare
  • text|regex => sost: stringhe o espressione regolare da sostituire. Prima e dopo => deve esserci uno spazio

Il testo cercato può essere scritto indifferentemente maiuscolo o minuscolo. Se il testo cercato viene racchiuso tra parentesi graffe, verrà cercato sia tra parentesi tonde, sia tra quadre e sia tra graffe.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# regole pulizia etichette

# eliminazioni
SPECIFICARE
{RISPOSTA.*?}

# sostituzioni
Ôÿ => à
° => .
\\ => /
Marca A => Marca XY

Note

[1]Una tabella di metadati può essere utilizzata anche per un file SPSS in sostituzione oppure a integrazione o correzione delle etichette del system file SPSS.