Miglioramento dei nomi delle variabili in un set di dati


11

I nomi di variabili validi sono:

a) breve / facile da scrivere,

b) facile da ricordare,

c) comprensibile / comunicativo.

Sto dimenticando qualcosa? La coerenza è qualcosa da cercare. Il modo in cui lo direi è che convenzioni di denominazione coerenti contribuiscono alle qualità di cui sopra. La coerenza contribuisce a (b) facilità di richiamo e (c) comprensibilità, sebbene altri fattori siano spesso più importanti. Esiste un chiaro compromesso tra (a) lunghezza del nome / facilità di digitazione (ad esempio tutte le lettere minuscole) e (c) comprensibilità.

Sto investendo un bel po 'di pensiero su questi problemi perché migliaia di persone utilizzano i dati e spero che molti utilizzeranno il mio codice per preparare i dati e facilitare alcuni tipi di analisi. I dati, tratti dallo studio longitudinale sulla salute degli adolescenti, sono suddivisi in più set di dati. Il mio primo passo è stato quello di prendere le 227 variabili nel set di dati più comunemente usato, ricodificarle, dare loro nomi più significativi. I nomi delle variabili originali sono cose come "aid", "s1", "s2", che ho ribattezzato "aid2", "age" e "male.is". Ci sono migliaia di altre variabili negli altri set di dati che possono essere unite a seconda degli obiettivi del ricercatore.

Finché sto rinominando le variabili, voglio renderle il più utili possibile. Ecco alcuni dei problemi che ho considerato. Finora ho usato solo lettere minuscole ed evitato di usare trattini o caratteri di sottolineatura e ho usato solo punti per uno scopo molto specifico. Ciò ha la virtù della semplicità e della coerenza e non causa problemi per la maggior parte delle variabili. Ma man mano che le cose diventano più complesse, sono tentato di interrompere la mia coerenza. Prendiamo, ad esempio, la mia variabile "talkprobmsum", sarebbe più facile da leggere come "talkProbMSum" o meglio ancora "talk.prob.m.sum", ma se userò lettere maiuscole o punti per separare le parole, allora non dovrei farlo per tutte le variabili?

Alcune variabili vengono registrate in più di una volta, ad esempio le variabili di gara, quindi ho aggiunto .is o .ih per indicare se provengono dal questionario a scuola o a casa. Ma ci sono sicuramente alcune ripetizioni di cui non sono ancora a conoscenza, sarebbe meglio aggiungere un riferimento all'insieme di dati al nome di ogni variabile?

Ho bisogno di raggruppare e standardizzare un sacco di variabili, il modo in cui l'ho fatto è aggiungendo .zms che significa z-score per maschio e per scuola.

Qualsiasi pensiero o risorsa generale o specifica è molto apprezzato. Vedi questo repository per alcuni dei miei codici e statistiche descrittive con un elenco di nomi di variabili. Ho brevemente descritto il motivo della condivisione di questo codice qui , ed è stato pubblicizzato un po ' qui , ma questi ultimi due collegamenti non sono realmente rilevanti per il problema delle convenzioni di denominazione delle variabili. Aggiunto: l' ho modificato leggermente, principalmente spostando un paragrafo, per cercare di evitare un po 'di confusione evidente nei commenti. Grazie per i pensieri!

05/05/2016 aggiunto: Vale la pena notare la Guida allo stile R di Hadley Wickham e la Guida allo stile R di Google ... Hadley afferma:

I nomi delle variabili e delle funzioni devono essere minuscoli. Utilizzare un trattino basso (_) per separare le parole all'interno di un nome.

Google dice:

Non utilizzare caratteri di sottolineatura (_) o trattini (-) negli identificatori. Gli identificatori dovrebbero essere nominati secondo le seguenti convenzioni. La forma preferita per i nomi delle variabili sono tutte le lettere minuscole e le parole separate da punti (variabile.nome), ma è accettata anche variabileNome; i nomi delle funzioni hanno lettere maiuscole iniziali e nessun punto (FunctionName); le costanti sono chiamate come funzioni ma con un k iniziale.


+1 per la creazione di un repository pubblico da condividere tra i ricercatori, sebbene questa domanda appartenga davvero allo StackTranslate.it.
nico,

6
Perché questa domanda dovrebbe essere migliore su SO, @nico? Per me non sembra che si tratti di programmazione o addirittura di R, ma piuttosto di pratiche appropriate per documentare e utilizzare i dati.
whuber

4
@whuber: ottengo il tuo punto. Tuttavia, leggendo la domanda l'ho vista come "come dovrei chiamare le mie variabili?", Che per me sembra più una questione di programmazione e non di statistica ... A ripensarci, è anche vero che il pubblico qui è più vicino a quello che utilizzerà i dati effettivi di quello di SO.
nico,

2
+1, penso che questa sia una grande domanda e complimenti per averlo fatto
gung - Ripristina Monica

2
Penso che questo dovrebbe rimanere aperto.
gung - Ripristina Monica

Risposte:


4

La migliore risposta a questa domanda è di evitarlo. Fondamentalmente, non ha molta importanza quali siano i nomi brevi delle variabili purché siano ben documentati in un libro di codici da qualche parte. Purtroppo, poiché R non ha risorse native per questo, le persone tendono a non disturbare. (La mancanza è, per me, il singolo più grande fallimento nella lingua come strumento statistico).

Esistono vari pacchetti R che forniscono questo macchinario, ad es. HmiscQuale si utilizza, e memisc. Ma davvero l'opzione migliore è trasformare il tutto in un pacchetto R. In questo modo i dati elaborati possono essere un oggetto con una pagina di aiuto corrispondente che descrive come viene chiamato tutto e che può assegnare credito dove dovuto. Il pacchetto può anche esporre i dati grezzi e le funzioni di elaborazione affinché le persone possano vedere cosa hai fatto per realizzare il prodotto finale.

Inoltre, un suggerimento: non includere affatto i dati derivati ​​come le variabili e le loro versioni z-score nell'oggetto dati finale se puoi aiutarlo, basta fornire le funzioni per farlo invece. I dati derivati ​​sono solo problemi dal punto di vista della gestione dei dati.


Dici che i nomi delle variabili non contano molto fintanto che sono ben documentati ... Non voglio fare una montagna da una collina talpa, ma penso che contino in una certa misura. I nomi di variabili difficili da ricordare o da digitare hanno un costo reale in termini di tempo per i ricercatori. Soprattutto se gli stessi nomi di variabili vengono utilizzati da un migliaio di ricercatori. Grazie per gli altri suggerimenti però :)
Michael Bishop,

4

Ecco una piccola cosa: penso che sia meglio usare i trattini bassi che i punti. Il motivo è che la maggior parte dei linguaggi di programmazione, a differenza di R, non supporta i periodi negli identificatori, ma quasi tutti supportano i trattini bassi. E presumo che tu voglia che il tuo set di dati sia utile per le persone che non usano R.


1

Prima di tutto, grazie per averlo fatto - Sono sicuro che molte persone lo apprezzeranno, anche se non molti sapranno che l'hai fatto.

L'interfaccia utente di RStudio non (almeno con le opzioni predefinite?) Non interpreta alcun separatore all'interno del nome della variabile. Ad esempio, Eclipse tratta le parti in maiuscolo come parole separate, quindi puoi usare le frecce Ctrl + per modificare rapidamente il codice in stile Java comeageStandardizedMaleSchool . Non riesco a trovare ragioni migliori per preferire un separatore a un altro, quindi i caratteri di sottolineatura o maiuscoli mi sembrano perfetti.

In generale, suggerisco di allungare i nomi delle variabili, piuttosto che attenersi a qualche schema di abbreviazione complesso. È facile fare errori di battitura come talk.prob.m.suminvece di talk.prob.sum.ms, ed è difficile individuare e tracciare errori nell'analisi statistica. (In qualche modo correlato: un bel detto che ho letto su alcuni blog è quello di scrivere i tuoi nomi variabili come parole scandinave - SickHouse e ToothHealer anziché ospedale e dentista .)

Un'ultima nota: la standardizzazione, la centratura ecc. Vengono generalmente eseguite dopo la pulizia dei dati. Se non c'è pulizia, forse potresti considerare di lasciarlo a chiunque analizzerà i dati. Oppure, se fai anche tu la pulizia da solo, indica tutti i passaggi che hai fatto - le successive analisi e interpretazioni potrebbero dipendere molto da quello.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.