1 pozycja została dodana do koszyka.

Uwaga: To FAQ jest dla użytkowników Stata 6. Nie ma to znaczenia dla nowszych wersji.

Stata 6: co zrobić, jeśli polecenie, którego potrzebuję,nie może być użyte Z by?

Tytuł Stata 6: używanie pętli while, gdy polecenie by nie jest opcją
Autor Jeremy B. Wernow, StataCorp

istnieje kilka poleceń w Stata, które nie zezwalają na polecenie by jako opcję. Dwa przykłady to polecenie tab1 oraz polecenie graph z opcją saving (). Jednym ze sposobów obejścia tej funkcji jest umieszczenie polecenia, które chcesz wykonać w pętli while:

, które nie działa. Wiemy jednak, że rep78 ma wartości od 1 do 5, więc spróbujmy wykonać pętlę while w pliku do:

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

oto wyjście z wykonania tego pliku:

Co jeśli rep78 ma brakujące wartości? W takim przypadku można użyć polecenia egen do utworzenia nowej zmiennej, która kategoryzuje każdą wartość w rep78.

oto zmodyfikowany plik do:

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

używając brakującej opcji z poleceniem egen, brakujące wartości rep78 zostaną zakodowane z wartością 6 (pamiętając, że rep78 ma wartości od 1 do 5). Zauważ, że wyjście z tego pliku do będzie teraz zawierać tabele dla mpg i cena dla brakujących wartości rep78, jak również.

przejdźmy teraz do trudniejszego przykładu. Ostatnio użytkownik chciał użyć polecenia by z poleceniem graph i opcją saving ().

by nie może być używany z opcją graph, saving() z powodu problemów z nazewnictwem (jak nazwiesz każdy pojedynczy Wykres?). Można to rozwiązać za pomocą innego pliku do:

 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 }

wyjście tego pliku do to

, który działał tak, jak chcieliśmy.

z tą koncepcją można wiele zrobić. Jako ostateczny i jeszcze bardziej złożony przykład, ten sam użytkownik powiedział również, że chce użyć opcji by () z opcją saving (), rysując je na tle innej zmiennej, i potrzebował tego zrobić dla listy zmiennych. To prawdopodobnie brzmi myląco na początku (i tak było). Zasadniczo, musieliśmy

przez var1: graph var2 var3, zapisując(graph) przez (var4)

kilka różnych zmiennych miało być użyte zamiast var3.

rozwiązaniem jest użycie polecenia for wewnątrz pętli while. Oto przykład przy użyciu automatycznego zestawu danych:

to powoduje

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.