1 item foi adicionado ao seu carrinho.

Nota: esta FAQ é para os utilizadores do Stata 6. Não é relevante para versões mais recentes.

Stata 6: O que faço se o comando de que preciso não puder ser usado por?

Título Stata 6: Usando loops while quando o comando não é uma opção
Autor Jeremy B. Wernow, StataCorp

Existem vários comandos no Stata que não permitirão o comando by como uma opção. Dois exemplos são o comando tab1 e os comandos do grafo com a opção Gravar (). Uma maneira de contornar esta funcionalidade é colocar o comando que deseja executar num ciclo while:

Que não funciona. Sabemos, no entanto, que rep78 tem valores entre 1 e 5, então vamos tentar um loop while em um arquivo:

 local i = 1 while `i' <=5 { tab1 mpg price if rep78 == `i' local i = `i' + 1 }

Aqui está a saída da execução deste ficheiro:

o Que se rep78 tem valores em falta? Neste caso, você pode usar o comando egen para criar uma nova variável que categoriza cada valor em rep78.

Aqui está o ficheiro do modificado:

 local i = 1 egen y = group(rep78), missing while `i' <=6 { tab1 mpg price if y == `i' local i = `i' + 1 }

Usando a opção em falta com o comando egen, os valores em falta do rep78 serão codificados com um valor de 6 (lembrando que o rep78 tem valores de 1 a 5). Note que o resultado deste Do-file irá agora conter tabulações para mpg e preço para os valores em falta do rep78 também.agora vamos passar para um exemplo mais difícil. Um utilizador queria recentemente usar o comando by com o comando graph e a opção saving ().

by Não pode ser usado com a opção grafo, saving() por causa de questões de nome (como você nomearia cada grafo individual?). Isto pode ser resolvido com outro do-file:

 local i = 1 egen y = group(rep78), missing while `i' <=6 { graph mpg price if y == `i', saving(graph`i',replace) local i = `i' + 1 }

a saída deste Do-file é

que funcionou como queríamos.

Há muito que você pode fazer com este conceito. Como um exemplo final e ainda mais complexo, o mesmo usuário também disse que queria usar a opção by() com a opção saving (), graphing aqueles contra outra variável, e ele precisava que isso fosse feito para uma lista de variáveis. Isto provavelmente parece confuso no início (e foi). Essentially, we needed to

by var1: graph var2 var3, saving(graph) by (var4)

Several different variables were to be used in place of var3.

a solução é usar um for command dentro de um laço while. Aqui está um exemplo usando o conjunto de Dados auto:

isto resulta em

Deixe uma resposta

O seu endereço de email não será publicado.