Saturday 19 August 2017

Destringing Variables In Stata Forex


Tenho problemas em remodelação de dados de formato largo para longo: Eu não tenho nenhuma variável de identificador para as variáveis ​​de largura. Meu conjunto de dados é bastante amplo. Eu tenho cerca de 7000 variáveis. O número de variáveis ​​por ID não é constante, então para alguns IDs tenho 5 e para outros tenho 10 variáveis. Eu estava esperando que este FAQ Stata poderia me ajudar, mas infelizmente isso não funciona corretamente (ver trechos de código a seguir). Então eu tenho dados que se parecem com o exemplo a seguir: A tabela final que eu quero alcançar seria algo como isto: Eu tentei próximo snippet de código perto do exemplo do FAQ Stata, mas isso lança um erro: Qualquer idéia como remodelar Isso eu nunca tive que remodelar uma estrutura tão estranha antes. Pergunta Adicional: No exemplo acima, eu tive que especificar o Meas005 Measers-Names. Meas0020 e Meas0020A. É possível automatizar isto também Todos os nomes de medição começam com a palavra-chave Meas. Então os nomes das variáveis ​​são sempre da estrutura ID Meas Name. por exemplo. A101Meas0020A significa ID A101 e Medição Meas0020A. A coisa irritante é: eu sei como fazer isso em MATLAB, mas eu sou forçado a usar Stata aqui. Perguntou 13 de agosto às 17:56 Esquecer de mencionar o Cross-Post é minha culpa. Sinto muito por isso. Mas de modo algum falei mal sobre Stata no meu post e, portanto, não aceito a sugestão de crítica mencionada. Eu sou 100 fluente em MATLAB e poderia ter resolvido isso em minutos. Uma vez que neste projeto eu não tenho acesso a uma licença MATLAB, eu preciso resolver isso com Stata - um software que eu ainda não estou suficientemente familiarizado com (e levou-me 3 horas sem qualquer progresso). Por favor não me interpretem mal - para aplicações específicas como aquela que estou trabalhando aqui, Stata está entre as melhores ferramentas para ir para. Ndash EliteTUM 13 de agosto às 20:35 Obrigado. É bom ouvir isso. Sou obrigado a usar STATA aqui. (Quot não foi pretendido negativamente) ndash Nick Cox 14 de agosto às 10:29 1 Resposta Sua estrutura de nome de variável é um pouco estranho, mas há uma sintaxe para corresponder. É melhor coberto na ajuda para remodelar e é apenas mal mencionado em O FAQ que você cita (que eu escrevi, para que eu possa ser enfático que a sua intenção como um suplemento para a ajuda, não a primeira linha de documentação). Seu exemplo cede a ele Parece estranho que seu exemplo entra tudo como string: note a destring No meu código. Sem acesso ao seu conjunto de dados, Id dizer que você deve ser capaz de encontrar a sintaxe mais geral, sem automação. Você sabe que há no máximo cerca de 10 medições no caso mais completo. Em qualquer caso, você já está mostrando a sintaxe Truques necessários para remover as cordas que você não precisa. Bem-vindo ao Instituto de Pesquisa Digital e Educação Stata Class Notes Contando de n para N Introdução Stata tem duas variáveis ​​internas chamadas n e N. n é a notação Stata para o número de observação atual. É 1 na primeira observação, 2 na segunda, 3 na terceira, e assim por diante. N é a notação Stata para o número total de observações. Vejamos como n e N funcionam. Como você pode ver, o ID da variável contém o número de observação executado de 1 a 7 e nt é o número total de observações, que é 7. Contando com usando n e N em conjunto com o comando by podem produzir alguns resultados muito úteis. Naturalmente, para usar o comando by, primeiro devemos classificar nossos dados na variável por. Agora n1 é o número de observação dentro de cada grupo e n2 é o número total de observações para cada grupo. Para listar a pontuação mais baixa para cada grupo use o seguinte: Para listar a pontuação mais alta para cada grupo use o seguinte: Outra utilização de n Permite usar n para descobrir se há números de identificação duplicados nos seguintes dados: Como se verifica, As observações 6 e 7 têm os mesmos números de identificação e valores de pontuação diferentes. Encontrando Duplicatas Agora vamos usar N para encontrar observações duplicadas. Neste exemplo, classificamos as observações por todas as variáveis. Em seguida, usamos todas as variáveis ​​na instrução by e definimos set n igual ao número total de observações que são idênticas. Finalmente, listamos as observações para as quais N é maior que 1, identificando assim as observações duplicadas. Se você tem um monte de variáveis ​​no conjunto de dados, pode demorar muito tempo para digitá-los todos fora duas vezes. Podemos fazer uso do caractere curinga para indicar que desejamos usar todas as variáveis. Além disso, nas versões mais recentes do Stata, podemos combinar sort e by em uma única declaração. Abaixo está uma versão simplificada do código que irá produzir os mesmos resultados exatos como acima. O conteúdo deste site não deve ser interpretado como um endosso de qualquer site específico, livro ou produto de software pela Universidade da Califórnia. Bem-vindo ao Instituto de Pesquisa Digital e Educação Stata FAQ Como posso converter rapidamente muitas variáveis ​​de seqüência de caracteres para Variáveis ​​numéricas Pode haver vezes que você recebe um arquivo que tem muitos (ou todos) das variáveis ​​definidas como seqüências de caracteres. Ou seja, variáveis ​​de caracteres. As variáveis ​​podem conter valores numéricos, mas se forem definidas como tipo string. Há muito poucas coisas que você pode fazer para analisar os dados. Você não pode obter os 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 seqüências de caracteres. Iremos abordar este cenário primeiro. Em seguida, abordaremos o caso em que as variáveis ​​de string realmente contêm strings eo objetivo é atribuir cada valor que a string assume em um valor numérico. Todos os exemplos nesta página usam o mesmo conjunto de dados, então vamos começar examinando os dados. O exemplo de conjunto de dados, hsbs. É um subconjunto do arquivo de dados High School e Beyond com todas as variáveis ​​como variáveis ​​de string. Como você pode ver a partir do comando descrever abaixo, as variáveis ​​são todas definidas como variáveis ​​de cadeia (por exemplo, science é str2, uma string 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 é definida como str2, você pode ver na lista abaixo que contém apenas valores numéricos. Mesmo assim, porque a variável é definida como str2, Stata não pode realizar qualquer tipo de análise numérica da ciência variável. O mesmo é verdadeiro para a variável read. Convertendo variáveis ​​de seqüência com valores numéricos Um método de converter números armazenados como seqüências de caracteres em variáveis ​​numéricas é usar uma função de seqüência de caracteres chamada real que converte valores numéricos armazenados como seqüências em valores numéricos Stata pode reconhecer como tal. A primeira linha de sintaxe lê no conjunto de dados mostrado acima. O segundo gera uma nova variável readn que é igual ao valor do número armazenado na variável string read. O real (s) é a função que converte os valores mantidos como strings, onde s é a variável que contém strings. Um segundo método para alcançar o mesmo resultado é a destruição do comando. 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 cadeia novamente. A segunda linha de sintaxe executa o comando destring. Como você pode ver a partir do comando descrever abaixo, o comando destring converteu todas as variáveis ​​para numeric, exceto para race. Gênero e schtyp. Como essas variáveis ​​tinham caracteres nelas, o comando de destruição deixou tais variáveis ​​sozinhas. Se houvesse quaisquer variáveis ​​numéricas no conjunto de dados, elas permaneceriam inalteradas. Ambas as técnicas descritas acima têm atributos que em algumas situações são vantagens e em outras situações podem ser desvantagens. O comando destring pode ser executado em um conjunto de dados inteiro em uma etapa, o método usando a função real requer a emissão de 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, ela define a variável igual a falta nesse caso e move-se. Em certa medida, a destruição pode ser feita para se comportar de forma semelhante, mas não de forma idêntica. Para converter uma variável de cadeia que contenha 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 aqueles casos que contêm valores não-numéricos para faltar (o que a função real faz), destring remove os caracteres não-numéricos especificados. Destring extrairá as seqüências de caracteres especificadas e, em seguida, converter, o que significa que a4 pode ser convertido em 4. destringir o comportamento s é muito bom se tiver valores numéricos armazenados como seqüências de caracteres que ocasionalmente contêm coisas como vírgulas (por exemplo, 4,354), mas pode haver situações em que Este comportamento é indesejável. Convertendo variáveis ​​de seqüência de caracteres com valores não numéricos em valores numéricos Como convertemos 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 descrever abaixo que gender2 e schtyp2 são variáveis ​​numéricas e eles têm rótulos associados a eles (chamados gender2 e schtyp2). Se listarmos os dados, parece que gender2 e schtyp2 são idênticos ao sexo e schtyp. No entanto eles são realmente numéricos eo que você está vendo são os rótulos de valor associado com as variáveis. Abaixo usamos a opção nolabel e você vê que gender2 e schtyp2 são realmente numéricos. E a variável raça. Ainda é uma variável de caractere 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 para numérico por incluir a opção de ignorar (X) que diz destring para converter a variável para numérico e quando ele encontra X para converter isso para um valor ausente. Você pode ver os resultados no comando de lista abaixo. Como você viu, podemos usar destring para converter variáveis ​​de seqüência de caracteres 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 caractere (como o X vimos com raça). Se você tem uma variável de caractere que é armazenada como todos os caracteres, você pode usar codificar para converter a variável de caractere para numérico e ele criará rótulos de valor que têm os valores que foram armazenados com a variável de caractere. Para obter mais informações, consulte a ajuda ou o manual de referência sobre os comandos destring e cod. O conteúdo deste site não deve ser interpretado como um endosso de qualquer site, livro ou produto de software específico pela Universidade da Califórnia.

No comments:

Post a Comment