Stata 6: Hva gjør jeg hvis kommandoen jeg trenger ikke kan brukes med av?
Tittel | Stata 6: Bruke mens looper når by-kommandoen ikke er et alternativ | |
Forfatter | Jeremy B. Wernow, StataCorp |
Det er flere kommandoer I Stata som ikke tillater by-kommandoen som et alternativ. To eksempler er kommandoen tab1 og grafkommandoene med alternativet lagre (). En måte å omgå denne funksjonen på er å sette kommandoen du vil utføre på en stund:
Som ikke virker. Vi vet imidlertid at rep78 har verdier mellom 1 og 5, så la oss prøve en stund i en do-fil:
local i = 1 while `i' <=5 { tab1 mpg price if rep78 == `i' local i = `i' + 1 }
Her er utdataene fra å utføre denne filen:
Hva om rep78 har manglende verdier? I dette tilfellet kan du bruke kommandoen egen til å opprette en ny variabel som kategoriserer hver verdi i rep78.
her er den modifiserte do-filen:
local i = 1 egen y = group(rep78), missing while `i' <=6 { tab1 mpg price if y == `i' local i = `i' + 1 }
ved å bruke det manglende alternativet med egen-kommandoen, vil de manglende verdiene til rep78 bli kodet med en verdi på 6 (husk at rep78 har verdier på 1 til 5). Merk at utdataene fra denne do-filen nå vil inneholde tabuleringer for mpg og pris for de manglende verdiene til rep78 også.
La Oss nå gå videre til et vanskeligere eksempel. En bruker ønsket nylig å bruke kommandoen by med kommandoen graph og alternativet saving ().
by kan ikke brukes med grafen, lagre() på grunn av navngivningsproblemer (hvordan vil du nevne hver enkelt graf?). Dette kan løses med en annen 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 }
utgangen av denne do-filen er
som fungerte akkurat som vi ønsket.
det er mye du kan gjøre med dette konseptet. Som et siste og enda mer komplekst eksempel sa den samme brukeren også at han ønsket å bruke alternativet by () med alternativet saving (), grafer dem mot en annen variabel, og han trengte dette gjort for en liste over variabler. Dette høres sannsynligvis forvirrende først (og det var). I hovedsak trengte vi
av var1: graf var2 var3, lagring(graf) av (var4)
Flere forskjellige variabler skulle brukes i stedet for var3.
løsningen er å bruke en for kommando inne i en stund loop. Her er et eksempel ved hjelp av auto datasettet:
dette resulterer i