Stata 6: Co mám dělat, když příkaz, který potřebuji, nelze použít pomocí?
Nadpis | Stata 6: Použití, zatímco smyčky, kdy příkaz není možnost | |
Autor | Jeremy B. Wernow, StataCorp |
ve Stata je několik příkazů, které neumožní příkaz by jako volbu. Dva příklady jsou příkaz tab1 a příkazy grafu s možností uložení (). Jedním ze způsobů, jak tuto funkci obejít, je umístit příkaz, který chcete spustit, do smyčky while:
to nefunguje. Víme však, že rep78 má hodnoty mezi 1 a 5, tak se pokusme while v souboru:
local i = 1 while `i' <=5 { tab1 mpg price if rep78 == `i' local i = `i' + 1 }
Zde je výstup z vykonávající tento soubor:
Co když rep78 má chybějící hodnoty? V tomto případě můžete pomocí příkazu egen vytvořit novou proměnnou, která kategorizuje každou hodnotu v rep78.
Zde je upravený-file:
local i = 1 egen y = group(rep78), missing while `i' <=6 { tab1 mpg price if y == `i' local i = `i' + 1 }
pomocí chybějící možnost s egen příkazu, chybějící hodnoty rep78 budou kódovány s hodnotou 6 (připomenout, že rep78 má hodnoty 1 až 5). Všimněte si, že výstup z tohoto souboru do bude nyní obsahovat tabulky pro mpg a cenu za chybějící hodnoty rep78.
nyní přejděme k obtížnějšímu příkladu. Uživatel nedávno chtěl použít příkaz by s příkazem graph a volbou saving ().
by nelze použít s volbou graph, saving() kvůli problémům s pojmenováním (jak byste pojmenovali každý jednotlivý graf?). To lze vyřešit jiným do-souborem:
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 }
výstup tohoto do-souboru je
, který fungoval přesně tak, jak jsme chtěli.
s tímto konceptem můžete udělat hodně. Jako poslední a ještě více komplexní příklad, stejný uživatel také řekl, že chce použít() s možností uložení() možnost, grafů ty, proti další proměnnou, a potřeboval to udělat pro seznam proměnných. To pravděpodobně zní zpočátku matoucí(a bylo to). V podstatě jsme potřebovali
var1: graf prom2 var3, ukládání(graf) (var4)
Několik různých proměnných, které měly být použity v místě var3.
řešením je použít příkaz for uvnitř smyčky while. Zde je příklad použití automatické datové sady:
výsledkem je