1 kohta on lisätty ostoskoriin.

Huom: Tämä UKK on Statan käyttäjille 6. Sillä ei ole merkitystä uudempien versioiden osalta.

Stata 6: Mitä teen, jos tarvitsemaani komentoa ei voi käyttää?

Title Stata 6: käytetään vaikka silmukoita, kun by-komento ei ole vaihtoehto
Author Jeremy B. Wernow, StataCorp

Statassa on useita komentoja, jotka eivät salli by-komentoa vaihtoehtona. Kaksi esimerkkiä ovat tab1-komento ja graafikomennot, joissa on tallennusvaihtoehto (). Yksi tapa kiertää tämä ominaisuus on laittaa suoritettava komento while-silmukkaan:

, joka ei toimi. Tiedämme kuitenkin, että rep78: n arvot ovat välillä 1-5, joten kokeillaanpa tovin loop do-tiedostossa:

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

tässä on tuloste tämän tiedoston suorittamisesta:

Mitä jos rep78: lla on puuttuvat arvot? Tässä tapauksessa voit käyttää egen-komentoa luodaksesi uuden muuttujan, joka luokittelee jokaisen arvon rep78: aan.

tässä on muokattu do-tiedosto:

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

käyttämällä puuttuvaa vaihtoehtoa egen-komennolla rep78: n puuttuvat arvot koodataan arvolla 6 (muistaen, että rep78: n arvot ovat 1-5). Huomaa, että tämän do-tiedoston tuloste sisältää nyt taulukoita mpg: lle ja hinta rep78: n puuttuville arvoille.

siirrytään nyt vaikeampaan esimerkkiin. Käyttäjä halusi äskettäin käyttää by-komentoa graafikomennolla ja tallennusvaihtoehdolla ().

by: ää ei voi käyttää graafin kanssa, tallentaminen () – valitsinta nimeämisongelmien vuoksi (miten nimeäisit jokaisen yksittäisen graafin?). Tämä voidaan ratkaista toisella do-tiedostolla:

 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 }

tämän do-tiedoston ulostulo on

, joka toimi juuri niin kuin halusimme.

tällä konseptilla voi tehdä paljon. Lopullisena ja vielä monimutkaisempana esimerkkinä sama käyttäjä sanoi myös haluavansa käyttää by () – vaihtoehtoa säästövaihtoehdolla (), kuvaamalla ne toista muuttujaa vastaan, ja hän tarvitsi tämän tehtävän muuttujaluetteloa varten. Tämä luultavasti kuulostaa hämmentävältä aluksi (ja se olikin). Oleellisesti tarvittiin

var1: kuvaaja var2 var3, säästö(kuvaaja) by(var4)

useita eri muuttujia var3: n sijasta.

ratkaisu on käyttää komentoa while-silmukan sisällä. Tässä on esimerkki automaattista aineistoa käyttäen:

Tämä johtaa

Vastaa

Sähköpostiosoitettasi ei julkaista.