Melhorando nomes de variáveis ​​em um conjunto de dados


11

Os bons nomes de variáveis ​​são:

a) curto / fácil de digitar,

b) fácil de lembrar,

c) compreensível / comunicativo.

Estou esquecendo alguma coisa? Consistência é algo a procurar. O que eu diria é que convenções de nomenclatura consistentes contribuem para as qualidades acima. A consistência contribui para (b) facilidade de recall e (c) compreensibilidade, embora outros fatores sejam frequentemente mais importantes. Existe uma clara troca entre (a) comprimento do nome / facilidade de digitação (por exemplo, todas em minúsculas) e (c) compreensibilidade.

Estou investindo bastante nessas questões, porque milhares de pessoas estão usando os dados e espero que muitas usem meu código para preparar os dados e facilitar alguns tipos de análise. Os dados, do Estudo Longitudinal de Saúde do Adolescente, são divididos em vários conjuntos de dados. Meu primeiro passo foi pegar as 227 variáveis ​​no conjunto de dados mais comumente usado, recodificá-las, dar-lhes nomes mais significativos. Os nomes de variáveis ​​originais são coisas como "aid", "s1", "s2", que eu renomeei "aid2", "age" e "male.is". Existem milhares de outras variáveis ​​nos outros conjuntos de dados que podem ser mescladas dependendo de quais são os objetivos do pesquisador.

Enquanto estou renomeando variáveis, quero torná-las o mais úteis possível. Aqui estão alguns dos problemas que eu considerei. Até agora, usei apenas letras minúsculas e evitei traços ou sublinhados, e usei períodos apenas para um propósito muito específico. Isso tem a virtude da simplicidade e consistência e não causa problemas para a maioria das variáveis. Mas, à medida que as coisas ficam mais complexas, fico tentada a quebrar minha consistência. Tomemos, por exemplo, minha variável "talkprobmsum", seria mais fácil ler como "talkProbMSum" ou, melhor ainda, "talk.prob.m.sum", mas se for usar letras maiúsculas ou pontos para separar as palavras, não devo fazer isso para todas as variáveis?

Algumas variáveis ​​são registradas mais de uma vez, por exemplo, as variáveis ​​de raça, então eu anexei .is ou .ih para indicar se elas são provenientes do questionário da escola ou de casa. Mas certamente há algumas repetições das quais ainda não estou ciente. Seria melhor acrescentar uma referência ao conjunto de dados ao nome de cada variável?

Preciso centralizar o grupo e padronizar muitas variáveis, da maneira que fiz isso acrescentando .zms, significando escore z pelo sexo masculino e pela escola.

Quaisquer pensamentos ou recursos gerais ou específicos são muito apreciados. Veja este repositório para alguns dos meus códigos e estatísticas descritivas com uma lista de nomes de variáveis. Descrevi brevemente o motivo para compartilhar esse código aqui , e ele foi divulgado um pouco aqui , mas esses dois últimos links não são realmente relevantes para a questão das convenções de nomenclatura de variáveis. Adicionado: editei isso levemente, principalmente movendo um parágrafo, para tentar evitar parte da confusão evidente nos comentários. Obrigado por pensamentos!

05/05/2016 adicionado: Vale a pena notar o Guia de estilo R de Hadley Wickham e o Guia de estilo R do Google ... Hadley diz:

Os nomes de variáveis ​​e funções devem estar em minúsculas. Use um sublinhado (_) para separar palavras em um nome.

O Google diz:

Não use sublinhados (_) ou hífens (-) nos identificadores. Os identificadores devem ser nomeados de acordo com as seguintes convenções. A forma preferida para nomes de variáveis ​​é todas as letras minúsculas e palavras separadas por pontos (variable.name), mas variableName também é aceito; os nomes das funções possuem letras maiúsculas iniciais e sem pontos (Nome da Função); constantes são nomeadas como funções, mas com um k inicial.


+1 para configurar um repositório público para compartilhar entre os pesquisadores, embora essa pergunta realmente pertença ao Stack Overflow.
Nico

6
Por que essa pergunta seria melhor no SO, @nico? Para mim, não parece ser sobre programação ou mesmo sobre R, mas sobre práticas apropriadas para documentar e usar dados.
whuber

4
@ whuber: Eu entendo o seu ponto. No entanto, ao ler a pergunta, eu a vi como "como devo chamar minhas variáveis?", O que para mim parece mais uma questão de programação e não sobre estatísticas ... Pensando bem, também é verdade que o público aqui está mais próximo aquele que usará os dados reais que os do SO.
Nico

2
+1, acho que essa é uma ótima pergunta e parabéns por fazer isso
gung - Reinstate Monica

2
Eu acho que isso deve ficar aberto.
gung - Restabelece Monica

Respostas:


4

A melhor resposta para essa pergunta é evitá-la. Fundamentalmente, não importa muito quais são os nomes abreviados das variáveis, desde que estejam bem documentados em um livro de códigos em algum lugar. Infelizmente, como R não tem recursos nativos para isso, as pessoas tendem a não se incomodar. (A falta é, para mim, a maior falha na linguagem como ferramenta estatística).

Existem vários pacotes R fornecendo esse mecanismo, por exemplo, o Hmiscque você usa e memisc. Mas realmente a melhor opção é transformar tudo em um pacote R. Dessa forma, os dados processados ​​podem ser um objeto com uma página de ajuda correspondente que descreve como tudo é chamado agora e pode atribuir crédito aonde é devido. O pacote também pode expor os dados brutos e suas funções de processamento para que as pessoas vejam o que você fez para produzir o produto final.

Além disso, uma sugestão: não inclua dados derivados como variáveis ​​e suas versões com z-pontuação no objeto final de dados, se você puder ajudá-lo, basta fornecer as funções para fazê-lo. Dados derivados são apenas problemas do ponto de vista do gerenciamento de dados.


Você diz que os nomes das variáveis ​​não importam muito, desde que estejam bem documentados ... Eu não quero fazer uma montanha de uma colina, mas acho que eles importam até certo ponto. Nomes de variáveis ​​difíceis de lembrar ou digitar têm um custo real no tempo do pesquisador. Especialmente se os mesmos nomes de variáveis ​​estiverem sendo usados ​​por mil pesquisadores. Obrigado por seus outros ponteiros embora :)
Michael Bishop

4

Aqui está uma coisa pequena: eu acho que é melhor usar sublinhados do que períodos. O motivo é que a maioria das linguagens de programação, ao contrário do R, não suporta períodos nos identificadores, mas quase todos suportam sublinhados. E presumo que você deseja que seu conjunto de dados seja útil para pessoas que não estão usando R.


1

Antes de tudo, obrigado por fazer isso - tenho certeza que muitas pessoas irão gostar, mesmo que poucas não saibam que você fez.

A interface de usuário do RStudio (pelo menos com as opções padrão?) Não interpreta nenhum separador no nome da variável. Por exemplo, o Eclipse trata partes maiúsculas como palavras separadas, para que você possa usar as teclas Ctrl + para editar rapidamente códigos do estilo Java ageStandardizedMaleSchool. Não posso encontrar razões melhores para preferir um separador do que outro, portanto, sublinhados ou bonés parecem bons para mim.

Em geral, sugiro que os nomes das variáveis ​​sejam mais longos, em vez de aderir a algum esquema de abreviação complexo. É fácil fazer erros de digitação, como em talk.prob.m.sumvez de talk.prob.sum.ms, e é difícil detectar e rastrear erros na análise estatística. (Um pouco relacionado: um bom ditado que li em algum blog é escrever seus nomes de variáveis ​​como palavras escandinavas - SickHouse e ToothHealer em vez de hospital e dentista .)

Em uma nota final: a padronização, centralização etc. são geralmente feitas após a limpeza dos dados. Se não houver limpeza, considere deixar isso para quem analisará os dados. Ou, se você também estiver fazendo a limpeza, indique todas as etapas que você tomou - análises e interpretações subsequentes podem depender muito disso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.