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.
fonte
R
, mas sobre práticas apropriadas para documentar e usar dados.Respostas:
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
Hmisc
que você usa ememisc
. 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.
fonte
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.
fonte
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.sum
vez detalk.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.
fonte