Stata 6: Hvad gør jeg, hvis den kommando, jeg har brug for, ikke kan bruges med af?
Title | Stata 6: Brug mens sløjfer, når kommandoen ikke er en mulighed | |
forfatter | Jeremy B. Statacorp |
Der er flere kommandoer i Stata, der ikke tillader kommandoen ved som en mulighed. To eksempler er kommandoen tab1 og grafkommandoerne med indstillingen Gem (). En måde at omgå denne funktion er at sætte den kommando, du vil udføre i et stykke tid loop:
det virker ikke. Vi ved dog, at rep78 har værdier mellem 1 og 5, så lad os prøve et stykke tid loop i en do-fil:
local i = 1 while `i' <=5 { tab1 mpg price if rep78 == `i' local i = `i' + 1 }
Her er output fra at udføre denne fil:
Hvad hvis rep78 mangler værdier? I dette tilfælde kan du bruge kommandoen egen til at oprette en ny variabel, der kategoriserer hver værdi i rep78.
Her er den ændrede do-fil:
local i = 1 egen y = group(rep78), missing while `i' <=6 { tab1 mpg price if y == `i' local i = `i' + 1 }
Ved at bruge den manglende mulighed med kommandoen egen, vil de manglende værdier af rep78 blive kodet med en værdi på 6 (husk at rep78 har værdier på 1 til 5). Bemærk, at output fra denne do-fil nu vil indeholde tabuleringer for mpg og pris for de manglende værdier af rep78 også.
lad os nu gå videre til et vanskeligere eksempel. En bruger ønskede for nylig at bruge kommandoen by med kommandoen graph og indstillingen Gem ().
by kan ikke bruges med indstillingen graph, saving () på grund af navngivningsproblemer (hvordan vil du navngive hver enkelt graf?). Dette kan løses med en anden do-fil:
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 }
udgangen af denne do-fil er
det fungerede lige som vi ønskede.
der er meget, du kan gøre med dette koncept. Som et sidste og endnu mere komplekst eksempel sagde den samme bruger også, at han ville bruge indstillingen by() med indstillingen Gem (), tegne dem mod en anden variabel, og han havde brug for dette gjort for en liste over variabler. Dette lyder sandsynligvis forvirrende i starten (og det var). I det væsentlige var vi nødt til at
Ved var1: graf var2 var3, gemme(graf) ved(var4)
flere forskellige variabler skulle bruges i stedet for var3.
løsningen er at bruge en til kommando inde i et stykke tid loop. Her er et eksempel ved hjælp af auto datasæt:
dette resulterer i