Saturday, 23 December 2017

Variável de seqüência de caracteres recode em stata forex


Stata para pesquisadores: trabalhando com dados Esta é a quarta parte da série Stata para pesquisadores. Para obter uma lista de tópicos abordados por esta série, consulte a Introdução. Se você é novo para a Stata recomendamos ler os artigos em ordem. Agora que você entende a sintaxe básica do Statas, você está pronto para começar a trabalhar com seus dados. Este artigo irá ensinar-lhe como criar novas variáveis, modificar variáveis ​​existentes e criar rótulos. Gerar e Substituir Os comandos básicos para criar e alterar variáveis ​​são gerados (geralmente abreviado gen) e substituir (o que, como outros comandos que podem destruir informações, não possui abreviatura). Gen cria novas variáveis ​​substituir as alterações dos valores das variáveis ​​existentes. Sua sintaxe central é idêntica: gen expressão variável substituir expressão variável onde variável é o nome da variável que deseja criar ou alterar e expressão é a expressão matemática cujo resultado você deseja inserir. Expressões podem ser tão simples como um único número ou envolver todos os tipos de funções complicadas. A Stata possui uma grande biblioteca de funções que você pode usar em gen e substituir expressões, demais para cobri-las (embora possamos introduzir algumas como nós). Para uma lista completa, digite as funções de ajuda. Fale sobre aprender dos arquivos de ajuda em Aprender Mais. Se uma expressão incluir um valor faltante em qualquer ponto, o resultado está faltando. Normalmente, isso é exatamente o que você espera e quer. Você nunca deve mudar os dados de forma interativa, então antes de continuar crie um arquivo do. Abra o editor do arquivo (digite doedit ou clique no botão que se parece com uma escrita de lápis em um caderno). Clique imediatamente em Arquivo. Salvar como. E salve o arquivo do do como data1 (o Stata preencherá. do no final). Em seguida, inicie o seu arquivo de arquivo com os seguintes comandos, conforme descrito na seção anterior: limpe todo o log de captura fechar defina mais fora do log usando data. log, substitua o trabalho real vai aqui, salve o autoVersion2, substitua o log close Agora você está pronto para trabalhar. O trabalho em si irá após o uso automático e antes do fechamento do registro. Os preços no conjunto de dados automotivos são em dólares de 1978, por isso pode ser útil convertê-los em 2017 dólares. Para isso, você precisa multiplicar os preços por um fator de conversão que é o IPC em 2017 dividido pelo CPI em 1978, ou cerca de 3,6. O código será: agora você pode compará-los com: Adicione essas linhas ao seu arquivo do, e clique no botão Fazer na extrema direita (aquele que se parece com uma folha de papel com um pequeno símbolo de quotplayquot no canto) ou pressione Ctrl - d. Mude para a janela principal do Stata para ver os resultados. Mas vamos ser um pouco mais precisos e usar 3.57 como o fator de conversão. Volte para o arquivo do e mude a linha: e execute o arquivo do arquivo novamente. O arquivo do do começa apagando o conjunto de dados anterior da memória e carregando o original no disco, então não há necessidade de quotfixquot a versão antiga do price2017. É simplesmente criado novamente como nós agora queremos. Ter um preço e uma variável de preço2017 nos permitiram comparar seus valores e verificar a plausibilidade. Mas se você quiser apenas trabalhar com 2017 dólares e está confiante de que você obteve a fórmula certa, você pode usar o comando substituir para alterar a variável de preço existente em vez de criar uma nova: Execute esta versão e receba a mensagem (74 mudanças reais feito). Dado que o conjunto de dados tem 74 observações, isso nos diz que todos eles foram alterados conforme esperado. Uma vez que você começa a incluir se as condições, quantas observações foram realmente alteradas podem ser informações muito úteis. Se um comando gen tiver uma condição if, a variável resultante (e deve) ainda existirá para todas as observações. No entanto, será atribuído um valor faltante para observações onde a condição if não é verdadeira. Se um comando de substituição tiver uma condição if, as observações em que a condição if não é verdadeira permanecerão inalteradas. Suponha que você quisesse colapsar a escala de cinco pontos da variável rep78 em uma escala de três pontos. Adicione o seguinte código ao seu arquivo de arquivo para fazer isso: gen rep31 se rep78lt3 substituir rep32 se rep783 substituir rep33 se rep78gt3 amp rep78lt. A primeira linha cria a nova variável rep3. Mas apenas ajusta isso para um caso em que rep78 é inferior a três. Os outros ficam desaparecidos. A segunda linha altera algumas dessas missões para dois, e a terceira muda mais para três. Observe como a terceira linha exclui especificamente as observações em que o rep78 está faltando. Qual será o valor de rep3 para esses casos faltando, porque nunca foi configurado para nada. As observações em que o rep78 está faltando foram excluídas de forma implícita ou explícita dos três comandos. (Se você esqueceu de excluir valores faltantes do último comando, rep3 seria três para os carros onde o rep78 está faltando, um erro muito comum.) O comando recode oferece uma maneira alternativa de criar o rep3. É projetado exclusivamente para tarefas de recodificação e é muito menos flexível do que gen e substituir. Na verdade, qualquer coisa que o recode pode fazer também pode ser feita com gen e substituir. Então, aprender é opcional. Mas pode fazer algumas coisas com mais facilidade. A sintaxe é: recode var (regra 1) (regra 2) (mais regras conforme necessário.), Gen (newvar) A opção gen no final não é necessária8212 se não estiver, então a variável original será alterada em vez de criar uma nova Variável com os novos valores. Você também pode descrever o trabalho em uma lista de variáveis, recodificando todas elas da mesma maneira. O núcleo do comando recodificar é uma lista de regras, entre parênteses, que indicam como uma variável deve ser recodificada. Eles assumem o formulário (inputValue outputValue). O inputValue pode ser um único número, uma lista de números ou um intervalo de números especificado com o começo final. OutputValue será sempre um único número. Qualquer coisa não coberta por uma regra é deixada inalterada. Heres uma versão recodificada de converter rep78 para uma escala de três pontos: recode rep78 (1 21) (32) (453), gen (rep3b) (A única razão para listar 1 e 2, mas dar um intervalo de 4 a 5 foi para Demonstrar ambos os estilos.) Os valores faltantes não requeriam nenhum tratamento especial: uma vez que falta não estava listado nos valores de entrada de qualquer regra, as observações com valores perdidos permanecem inalteradas. Se você fez tudo corretamente, rep3 e rep3b serão idênticos. Verifique com um assert: Execute o arquivo do do para descobrir como você fez. Criando Variáveis ​​de Indicador Na criação de variáveis ​​de indicadores, você pode aproveitar o fato de que Stata trata verdadeiro como um e falso como zero, definindo uma variável igual a uma condição. Considere: (Os parênteses são opcionais, mas facilitam a leitura.) Isso cria uma variável de indicador chamada gasGuzzler que é um (verdadeiro) para carros onde o mpg é menor do que vinte e zero (falso) onde mpg é maior ou igual a vinte. Você pode ver o efeito com: l make mpg se gasGuzzler Nós sabemos que nenhum carro tem um valor faltando para mpg, mas, se houver algum, o código acima atribuiria um zero para gasGuzzler como se fosse conhecido por ter uma boa milhagem de gás. GasGuzzler deve estar faltando para esses casos, o que você pode fazer com: gen gasGuzzler (mpglt20) se mpglt. O comando egen, abreviação de geração prolongada. Dá-lhe acesso a outra biblioteca de funções8212type help egen para uma lista completa. As funções do Egen tendem a ser mais complexas e muitas vezes funcionam através das observações. Suponha que você quisesse encontrar o valor médio do mpg e armazená-lo em uma variável. Egen tem uma função média que lhe dará exatamente o que você deseja: a função mean () encontra a média de uma coluna. Para encontrar a média de uma linha, ou, mais provavelmente, parte de uma linha, use rowmean (): egen rmrowmean (mpg rep78) Para cada carro, rm conterá a média desses carros mpg e rep78. Não é provável que isso seja uma quantidade útil. Um uso mais típico de rowmean () é construir uma resposta média de respondentes para um grupo de perguntas. As funções do egen geralmente lida com valores faltantes calculando o resultado em qualquer dado disponível. Assim, para as observações em que o rep78 está faltando, rm é apenas mpg. Na maioria das vezes é o que você quer: se você tiver 10.000 observações e 1 deles tem um valor faltante, você não gostaria que a Stata lhe dissesse que é impossível calcular uma média. No entanto, pode ser problemático: se você usa rowmean () para calcular as respostas médias a um grupo de perguntas, mas algumas pessoas não responderam todas as perguntas, o resultado será o mesmo que se você tivesse preenchido todos os valores faltantes com a média 8212a Idéia muito ruim. Com Egen. O que segue o sinal de igual é uma função única e não uma expressão matemática. Se você quisesse definir uma variável para metade de uma média, você deve usar primeiro egen para calcular a média e, em seguida, usar um comando de substituição para dividi-lo em 2. Aqui estão algumas das funções mais usadas na biblioteca Egen : Todas essas funções atuam em todas as observações. Os parênteses geralmente contêm uma única variável para a função ativa, mas pode conter uma expressão matemática em vez disso. Essas funções também possuem equivalentes de linha (rowmin. Rowmax etc.) que fazem a mesma coisa, mas entre variáveis ​​em uma única linha. Existem muitas outras funções de Egen úteis, como std (criar uma versão padronizada de uma variável), grupo (criar um identificador de grupo com base nos valores de uma ou mais variáveis ​​categóricas) ou mesmo mtr (taxa de imposto marginal para um casado Casal nos EUA com uma determinada quantia de renda em um determinado ano). Você pode obter uma lista completa digitando help egen. E você deve planejar lê-lo algum tempo no início da sua carreira na Stata. Drop and Keep O comando drop permite que você remova variáveis ​​ou observações de seu conjunto de dados. Se você der uma varlist. Ele irá remover essas variáveis: remove a variável rep3b do seu conjunto de dados. Se você der uma condição if, drop removerá todas as observações em que essa condição é verdadeira: drop if gasGuzzler O comando Keep funciona da mesma maneira, mas no sentido oposto. Mantenha o rep3b remover todas as variáveis ​​exceto rep3b. Enquanto mantenha se gasGuzzler remover todas as observações que não são guzzlers de gás. Você pode renomear uma variável digitando: renomear oldName newName Renomear variáveis ​​com nomes gibberish (H2V06 e similares) pode levar um pouco de tempo, mas você vai economizar tempo no final. Os nomes variáveis ​​devem ser uma palavra sem espaços. No entanto, você pode usar letras maiúsculas ou sublinhados () para marcar limites de palavras. Um nome de variável como numinhh se parece com jargão, mas se você colocá-lo na forma numInHH ou numinhh, então o leitor tem uma chance de se esforçar para perceber que significa quotnumber na casa. O comando renome também tem a capacidade de renomear um grande número de variáveis ​​baseadas Em padrões. Digite help renomear para obter mais informações. O nome da variável rep3 não transmite muita informação, então vamos mudá-lo: renomear rep3 repairRecord Labels permite que você transmita mais informações sobre seus dados. Você só precisa digitá-los uma vez, para que eles possam ser o tempo que quiser. Os rótulos podem ser aplicados a variáveis ​​ou a seus valores (ou conjuntos de dados inteiros, que não discutiremos). Este conjunto de dados já possui um bom conjunto de rótulos variáveis, como você pode ver na janela Variáveis. O único que pode ser confuso é o rótulo estrangeiro. Então mude bem usando o comando de variável de etiqueta. A sintaxe para definir um rótulo de variável é: rótulo variável var quot labelquot rótulo variável estrangeiro quotCar Originquot Olhe novamente para a janela Variáveis ​​para ver os resultados. Em seguida, vamos explorar os rótulos de valores rotulando os valores do repairRecord (anteriormente conhecido como rep3. A nova variável que recodificamos para colapso rep78 de uma escala de cinco pontos para uma escala de três pontos). Os rótulos de valor são um mapeamento de um conjunto de inteiros para um conjunto de descrições, então o primeiro passo é criar o mapa. Para fazer isso, use o comando label define: label define mapName value1 quotlabel1 quot value2 quot label2 quot. Label define def 1 quotBadquot 2quotAveragequot 3quotGoodquot Então diga a Stata para rotular os valores da variável repairRecord usando o mapeamento representativo que você acabou de definir. A sintaxe é: valores de etiqueta valores variáveis ​​de rótulos de mapas repairRecord rep Para ver os resultados, adicione: Uma vez definido um mapa, você pode aplicá-lo a qualquer número de variáveis: basta substituir a variável única no comando de valores de etiqueta acima com uma lista de variáveis . Suponha que você esteja trabalhando com os dados da pesquisa e suas variáveis ​​incluem o gênero do entrevistado, o gênero do cônjuge entrevistado e os gêneros de todas as crianças respondentes. Você poderia definir apenas um mapa chamado gênero e depois usá-lo para rotular os valores de todas as variáveis ​​de gênero. Dois comandos finais para rótulos de valores: label dir fornece uma lista de todos os rótulos definidos e a lista de etiquetas indica o que eles significam. Tipos variáveis ​​e Stata de precisão podem armazenar números em cinco tipos diferentes de variáveis. byte. Int e long são todos inteiros de vários tamanhos. O menor, byte. Só pode armazenar números abaixo de 100, mas ocupa muito pouca memória, tornando-o ideal para indicadores e variáveis ​​categóricas. Int pode armazenar números até cerca de 32,000 e longo até cerca de dois bilhões. Para números com frações, suas escolhas são flutuantes (o padrão) e duplas. Ambos podem armazenar números muito grandes, mas sua precisão é limitada: um flutuador possui apenas cerca de sete dígitos de precisão e um duplo dezesseis. Para obter detalhes, digite tipos de dados de ajuda. Embora os cientistas sociais raramente tenham sete dígitos significativos em seus dados, lembre-se de que os identificadores são apenas grandes números até Stata. Por exemplo, você provavelmente pensa em seu UW ID como uma seqüência de dez inteiros pequenos (quotnine, zero, dois. Quot), mas para Stata é um único número muito grande. Se você tentou armazenar UW IDs como o flutuador padrão. Eles seriam arredondados uma vez que um flutuador não pode armazenar dez dígitos com precisão (o que venceria o propósito de armazenar um ID). Esses IDs devem ser armazenados usando duplas. Longs or strings. O tipo de variável é definido quando é criado. Para criar uma variável que não é um flutuador, coloque o tipo desejado logo após gen ou egen e antes do nome da variável: gen byte highMPG (mpggt25) Se você declarar que uma variável é um inteiro (byte. Int ou long), mas a expressão Você define igual a contém frações, a parte fracionada será truncada, não arredondada. Há também uma função round () se você precisar. Na maioria das vezes não vale a pena se preocupar em encontrar os tipos numéricos mais eficientes para suas variáveis. No entanto, se o seu conjunto de dados for grande, usar pequenos tipos como bytes sempre que possível pode economizar muito espaço em memória e disco. O comando compress irá procurar variáveis ​​que podem ser armazenadas em tipos menores sem perder precisão, e as alterará automaticamente. As strings são variáveis ​​que contêm valores de texto e não numéricos. É bem possível que esse texto seja composto de números, mas a Stata não tentará avaliá-los. Você pode reconhecer uma string porque terá citações em torno dela: faz x1 uma string e é completamente diferente de Por exemplo, você não pode adicionar x1 e x2. Você pode escrever se x1quot123quot e mesmo se x1gtquot123quot, mas o último será avaliado de acordo com a ordem alfabética, não numérica. Stata notou que você estava configurando x1 igual a uma string, e assim fez x1 uma variável de string automaticamente. No entanto: não funcionará porque você não pode alterar uma variável de string para numeric ou vice-versa8212, mas você pode fazer com que pareça com você. Alterando o Tipo de Variável Suponha que você precisava fazer alguma matemática com os números contidos em x1. Agora você não pode, porque x1 é uma string. Heres como você pode mudar isso: gen tempreal (x1) drop x1 rename temp x1 A função real () leva um argumento, uma string e retorna essa string convertida em um número. Se a string contiver qualquer coisa, exceto os números reais () retornará em falta. Tendo armazenado os números em x1 como temp. Você então cai x1 e faz temp o novo x1. X1 é agora uma variável numérica. Você pode transformar as variáveis ​​numéricas em strings usando o mesmo process8212 para substituir a função real () pela função string (). Para os exercícios que utilizam o conjunto de dados do automóvel, verifique se o seu arquivo de arquivo carrega o conjunto de dados original. Usando o conjunto de dados do automóvel, suponha que o custo de fabricação de um carro é a soma do seguinte: 1.50 por libra de peso 0.25 por libra para enviar se for estrangeiro 100 se o seu rep78 for 5 (presumivelmente contratar melhores engenheiros) Calcule o lucro (Preço menos custo) de vender cada automóvel. (Solução) Considere as entrevistas. dta. Contém o mês eo ano em que cada assunto nasceu e o mês e ano em que esse assunto foi entrevistado. Encontre a idade do assunto no momento da entrevista em meses. Então ache-o em anos inteiros (ou seja, o que a pessoa diria se você perguntou quão antigo é você). Não se preocupe com os dias (ou, se preferir, assumir que as entrevistas sempre ocorrem mais tarde no mês do que os aniversários). Para obter crédito extra, leia as datas da Stata e repita o processo usando-as. (Solução) Voltando ao conjunto de dados do automóvel, a variável de marca é composta pelo fabricante do carro, seguido do nome do carro. Crie uma nova variável contendo apenas o fabricante. Este exercício provavelmente exigirá que você digite funções de ajuda e ou ajude egen e veja a lista de funções disponíveis. Na verdade, esse é o tipo de ponto: encontrar funções que farão o que você precisa fazer é uma grande parte da programação da Stata. Aprender Mais tem algumas dicas para entender os arquivos de ajuda. (Solução) Agora considere statecounty. dta. Possui um identificador de duas partes: estado e município. Combine-os em um único identificador, de modo que o condado 1 no estado 1 se torne 101 eo condado 5 no estado 12 torna-se 1205. Agora faça-o novamente, transformando-os em cordas primeiro, fazendo o código para o condado 1, indique 1 quot0101quot. (Solução) Use o conjunto de dados do automóvel novamente. Crie rótulos de valor para que, ao listar o mpg, você ver quot12 (menor MPG) quot e quot41 (Maior MPG) quot para os carros com os valores mais baixos e mais altos de mpg, respectivamente. (Solução) Última revisão: 12172017NOTICE: O grupo de consultoria estatística IDRE estará migrando o site para o WordPress CMS em fevereiro para facilitar a manutenção e criação de novos conteúdos. Algumas de nossas páginas antigas serão removidas ou arquivadas de modo que elas não serão mais mantidas. Vamos tentar manter os redirecionamentos para que os URLs antigos continuem a funcionar da melhor maneira possível. Bem-vindo ao Instituto de Pesquisa e Educação Digital Ajudar o Grupo de Consultoria Estatal dando um presente FAQ do Stata Como posso converter rapidamente muitas variáveis ​​de string em variáveis ​​numéricas Pode haver momentos em que você recebe um arquivo que tem muitas (ou todas) variáveis Definido como cordas. Isto é, variáveis ​​de caracteres. As variáveis ​​podem conter valores numéricos, mas se eles são definidos como string de tipo. Há muito poucas coisas que você pode fazer para analisar os dados. Você não pode obter meios, você não pode fazer uma regressão, você não pode fazer uma ANOVA, etc. Às vezes, o conjunto de dados contém valores numéricos que são armazenados como strings. Nós abordaremos esse cenário primeiro. Em seguida, abordaremos o caso em que as variáveis ​​de string realmente contêm cordas, e o objetivo é atribuir cada valor que a string assume em um valor numérico. Todos os exemplos desta página usam o mesmo conjunto de dados, então vamos começar examinando os dados. O conjunto de dados de exemplo, hsbs. É um subconjunto do arquivo de dados High School e Beyond, com todas as variáveis ​​como variáveis ​​de string. Como você vê a partir do comando de descrição abaixo, as variáveis ​​são todas definidas como variáveis ​​de string (por exemplo, ciência é str2. Uma seqüência de comprimento 2). Agora que sabemos que as variáveis ​​são variáveis ​​de string, podemos usar o comando list para ver como as strings armazenadas nessas variáveis ​​se parecem. Embora a ciência variável seja definida como str2, você pode ver da lista abaixo que contém apenas valores numéricos. Mesmo assim, porque a variável é definida como str2, a Stata não pode realizar qualquer tipo de análise numérica da ciência variável. O mesmo é verdadeiro para a leitura variável. Convertendo variáveis ​​de string com valores numéricos Um método para converter números armazenados como strings em variáveis ​​numéricas é usar uma função de string chamada real que traduz valores numéricos armazenados como seqüências de caracteres em valores numéricos. A Stata pode reconhecer como tal. A primeira linha de sintaxe lê no conjunto de dados mostrado acima. O segundo gera uma nova leitura variável que é igual ao valor do número armazenado na leitura da variável de string. O (s) real (es) é a função que traduz os valores mantidos como strings, onde s é a variável que contém strings. Um segundo método para alcançar o mesmo resultado é o comando destring. Vamos tentar usar o comando destring e ver como ele funciona. A primeira linha de sintaxe carrega o conjunto de dados novamente, de modo que estamos começando com um conjunto de dados contendo apenas variáveis ​​de string novamente. A segunda linha de sintaxe executa o comando destring. Como você pode ver no comando de descrição abaixo, o comando destring converteu todas as variáveis ​​em numérico, exceto para a raça. Gênero e schtyp. Como essas variáveis ​​tinham caracteres neles, o comando destring deixou essas variáveis ​​sozinhas. Se houvesse variáveis ​​numéricas no conjunto de dados, elas permaneceriam inalteradas. Ambas as técnicas descritas acima possuem atributos que em algumas situações são vantajosas e em outras situações podem ser desvantagens. O comando destring pode ser executado em um conjunto de dados inteiro em um passo, o método usando a função real exige emitir um comando para cada variável a ser convertida (embora isso possa ser feito com um loop em vez de digitar a sintaxe para cada variável). Uma vantagem potencial para usar a função real (o primeiro método) é que, se a função real encontrar um valor não-numérico, ele define a variável igual à ausente nesse caso e continua. Até certo ponto, podem ser feitos comportamentos para se comportar de forma semelhante, mas não de forma idêntica. Para converter uma variável de string contendo qualquer valor não numérico usando destring, é necessário listar os caracteres que devem ser ignorados (por exemplo, ou.). Além disso, ao invés de definir valores para os casos com valores não-numéricos em falta (o que a função real faz), destring remove os caracteres não-numéricos especificados. Destring irá extrair as cordas especificadas e, em seguida, converter, o que significa que a4 pode ser convertido em 4. o comportamento de destring é muito bom se um tiver valores numéricos armazenados como strings que ocasionalmente contêm coisas como vírgulas (por exemplo, 4,354), mas pode haver situações em que Esse comportamento não é desejável. Convertendo variáveis ​​de string com valores não numéricos em valores numéricos Como convertem gênero e schtyp em valores numéricos Podemos usar o comando codificar como mostrado abaixo. Esses comandos criam gender2 e schtyp2. Observe no comando de descrição abaixo que gender2 e schtyp2 são variáveis ​​numéricas e eles possuem rótulos associados a eles (chamado gender2 e schtyp2). Se listarmos os dados, parece que gender2 e schtyp2 são idênticos ao gênero e ao schtyp. No entanto, eles são realmente numéricos eo que você está vendo são os rótulos de valor associados às variáveis. Abaixo, usamos a opção nolabel e você vê que gender2 e schtyp2 são realmente numéricos. E quanto à raça variável. Ainda é uma variável de caracteres porque nosso comando de destruição anterior viu o X nos dados e não tentou convertê-lo porque tinha valores não-numéricos. Abaixo, podemos convertê-lo em numérico, incluindo a opção ignorar (X) que informa a destring para converter a variável em numérico e quando encontra X para converter isso em um valor ausente. Você pode ver os resultados no comando da lista abaixo. Como você viu, podemos usar destring para converter variáveis ​​de string que contêm números em variáveis ​​numéricas, e pode lidar com situações em que alguns valores são armazenados como um personagem (como o X que vimos com a raça). Se você tem uma variável de caracteres que está armazenada como todos os caracteres, você pode usar codificar para converter a variável de caracteres numérico e criará rótulos de valores que tenham os valores que foram armazenados com a variável de caracteres. Para mais informações, consulte o manual de ajuda ou referência sobre os comandos de destring e codificar. O conteúdo deste site não deve ser interpretado como um endosso de qualquer site, livro ou produto de software específico da Universidade da Califórnia.

No comments:

Post a Comment