AVISO: 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 Help the Stat Consulting Group dando um presente Stata FAQ Como posso transformar uma variável de string contendo datas em uma variável de data O Stata pode reconhecer as datas de conversão inseridas como strings em datas numéricas que podem ser usadas pela Stata É relativamente simples. Os comandos variam um pouco com base no formato em que os dados foram inseridos e como consistentemente esse formato foi aplicado. Na maioria dos casos, a Stata pode lidar com datas em que os dias foram inseridos como números de um ou dois dígitos e em que o mês foi inserido como abreviatura (por exemplo, janeiro, setembro, setembro) ou digitado em conjunto (por exemplo, janeiro, setembro ). O único lugar em que você pode ter problemas é com o ano. Em geral, a Stata espera encontrar valores de quatro dígitos por ano, se seus dados não foram inseridos dessa forma (ou não foram inseridos de forma consistente), o Stata pode lidar com isso, mas algumas adições são necessárias para a sintaxe. O conjunto de exemplos a seguir cobre uma série de cenários comuns. Em geral, os exemplos se movem do caso mais simples (onde os valores para o ano são todos os quatro dígitos), para casos mais complexos (onde os valores para o ano não foram inseridos consistentemente como valores de quatro dígitos). Caso 1: datas com valores de quatro dígitos para o ano. Dois comandos são usados para converter uma data de string em uma data numérica. O código é ligeiramente diferente dependendo da versão do Stata que você está usando. A diferença é na forma como o padrão é especificado. Em Stata 9, deve ser minúscula (por exemplo, dmy) e no Stata 10, deve ser maiúscula para o dia, o mês e o ano (por exemplo, DMY), mas em minúsculas, se desejar especificar horas, minutos ou segundos (por exemplo, DMYhms) . Na sintaxe abaixo, o primeiro comando realmente gera a nova variável de data e converte a string no código numérico apropriado para a data em questão (ou seja, o número de dias decorridos entre 1º de janeiro de 1960 e a data em questão). Nossos dados estão no dia da ordem, mês, ano, então usamos dmy (ou DMY) dentro do comando data (.) (Veja abaixo informações sobre diferentes formatos). O segundo comando formata o valor numérico para que, quando o Stata exiba a data, ele está em uma forma que é fácil para os humanos lerem. Observe que enquanto estiver usando a lista. E alguns outros comandos de exibição de dados, produz valores que se parecem com datas de string, os valores reais armazenados pelo Stata são numéricos. Na versão do Stata 9, os comandos são: Na versão do Stata 10, os comandos são: Em qualquer das versões, se você listar os dados, você deve ver o seguinte: acima, nossa seqüência de data foi formatada dia, mês, ano, sem nenhum caractere que separe o Diferentes componentes da nossa data, no entanto, a Stata pode lidar com uma grande variedade de formatos e separando caracteres. Por exemplo, nossos dados poderiam ter sido listados 20-jan-2007, 20jan2007 ou 20.jan.2007 e os comandos acima funcionariam sem alterações. A Stata irá mesmo lidar com datas em que algumas entradas têm separadores e outras não. Nós também podemos alterar a ordem em que os componentes da data estão listados, tudo o que precisamos alterar é a ordem das letras usadas para indicar a Stata qual componente da data é onde (por exemplo, ano, mês, dia pode ser especificado usando Ymd ou YMDquot). As datas também podem ser todas numéricas, por exemplo, 20-Jan-2007 também podem ser representadas por 20-1-2007 e no Stata 10 até 20012007. Observe que, se todas as datas numéricas forem inseridas sem separadores, você deve certificar-se de que, para a Os valores de um único dígito do dia e mês (por exemplo, o 1 de janeiro acima) possuem zeros avançados. Caso 2: Datas com valores de dois dígitos e quatro dígitos para o ano, com todas as datas de dois dígitos no mesmo século. O exemplo acima assumiu que os valores para o ano foram listados em um formato de quatro dígitos (por exemplo, 2004), no entanto, isso nem sempre é o caso. Os dados abaixo contém as datas listadas com apenas dois dígitos, supondo que eu saiba que essas datas vieram do vigésimo (por exemplo, 1907) ou do século 21 (por exemplo, 2007), posso dizer ao Stata que trate os anos como se fossem valores de quatro dígitos. Para fazer isso, adicionei 19 ou 20 na frente do Y na parte do comando que dá a Stata a ordem em que os valores aparecem. Por exemplo, para datas, dia, mês, ano, o comando é dm20y ou DM20Y (para as versões 9 e 10 da Stata, respectivamente). Observe que as duas últimas datas contêm anos de quatro dígitos (2005 e 1999), isso é bom, a única restrição é que as entradas com valores de dois dígitos para o ano são provenientes do mesmo século. Para a versão 9 do Stata, o comando para criar uma nova variável de data numérica a partir de uma variável de string e formatar a nova variável para que ela seja exibida como uma data são: Para Stata versão 10, o comando para criar uma nova variável de data numérica a partir de uma variável de string e formatar a Uma nova variável para que ela seja exibida como uma data é: Note que para datas no século 20 (por exemplo, 1997), o comando inclui dm19y ou DM19Y (para as versões 9 e 10 da Stata, respectivamente). Em qualquer versão do Stata, se você listar os dados, você deve ver o seguinte: como no primeiro exemplo, as datas podem ser formatadas de várias maneiras, a ordem dos componentes não é mater, mas os 19 ou 20 sempre precedem O Caso 3. Caso 3: Datas com valores de dois dígitos e quatro dígitos por ano, todas as datas de dois dígitos não estão no mesmo século ou não do século XX ou XXI. No caso de 2, assumimos que todas as datas com valores de dois dígitos para o ano eram do mesmo século e que todas as datas com valores de dois dígitos para o ano caem nos séculos XX ou XXI. Neste exemplo, diremos a Stata o ano mais recente em que os dados podem aparecer, e a Stata atribuirá os séculos para que todas as datas ocorram antes desse ano. Um exemplo de quando isso é útil é se eu conheço os valores abaixo são datas de nascimento para indivíduos atualmente vivos. Como eles estão vivendo atualmente, eu sei que nenhum deles nasceu depois do ano atual (2007), e é improvável que o valor 07 no ano seja 1907 em vez de 2007 (note que esse tipo de informação é altamente dependente da Dados, então você deseja verificar quaisquer pressupostos que você fizer no que você realmente conhece sobre seus dados). Isso também seria útil se seus valores de ano de 2 dígitos vierem de um século anterior. Por exemplo, se todas as suas datas forem do século 17, dar Stata 1799 como o último ano possível resultará em todas as datas de dois dígitos serem atribuídas ao século XVIII (ou seja, 84 seriam interpretadas como 1784). Para a versão 9 do Stata, o comando para criar uma nova variável de data numérica a partir de uma variável de string e formatar a nova variável para que ela seja exibida como uma data são: Para Stata versão 10, o comando para criar uma nova variável de data numérica a partir de uma variável de string e formatar a Uma nova variável para que ela seja exibida como uma data é: Em qualquer versão do Stata, se você listar os dados, você deve ver o seguinte: O conteúdo deste site não deve ser interpretado como um endosso de qualquer site, livro ou software específico Produto da Universidade da Califórnia. NOTICE: 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 possui 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 números, 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