artikkelini LUOKKAMUUTTUJIEN ja muuttujien eroista SAS: ssä keskittyi SAS: n analyyttisiin menetelmiin. BY statement on kuitenkin hyödyllinen myös SAS: n DATA-vaiheessa, jossa sitä käytetään tietojoukkojen yhdistämiseen ja tietojen analysointiin konsernitasolla. Kun käytät lauseketta DATA-vaiheessa, DATA-vaihe luo kaksi väliaikaista indikaattorimuuttujaa kutakin lausekkeessa olevaa muuttujaa kohti. Näiden muuttujien nimet ovat ensin.vaihteleva ja viimeinen.muuttuja, jossa muuttuja on muuttujan nimi lausekkeessa. Jos käytetään esimerkiksi lausetta sukupuolen mukaan, ovat indikaattorimuuttujien nimet ensin.Seksi ja viimeinen.Sukupuoli.
tässä artikkelissa annetaan useita esimerkkejä ensimmäisen käyttämisestä.vaihteleva ja viimeinen.muuttuja indicatorvariables RYHMÄANALYYSIIN SAS DATA vaiheessa.Ensimmäinen esimerkki osoittaa, miten lasketaan luvut ja kumulatiiviset määrät kullekin ryhmälle. Toinen esimerkki osoittaa, miten lasketaan aika potilaan ensimmäisen ja viimeisen klinikkakäynnin välillä sekä mitatun määrän muutos ensimmäisen ja viimeisen käynnin välillä.
käytä ensin. ja viimeinen. muuttujat, joilla etsitään ryhmien kokoa
, ensimmäisessä esimerkissä käytetään Sashelpin tietoja.Heart data set, joka sisältää 5 209 potilaan tiedot lääketieteellisestä sydäntautitutkimuksesta. Tiedot jaetaan SAS: n kanssa. Seuraavassa DATAVAIHEESSA poimitaan Smoking_Status-ja Painomuuttujat ja lajitellaan tiedot Smoking_Status-muuttujalla:
proc sort data=Sashelp.Heart (keep=Smoking_Status Weight) out=Heart; by Smoking_Status; run;
koska tiedot lajitellaan Smoking_Status-muuttujalla, voit käyttää ensimmäistä.Smoking_Status ja viimeinen.Smoking_Status väliaikaiset muuttujat havaintojen lukumäärän laskemiseksi Smoking_Status-muuttujan kullakin tasolla. (PROC FREQ laskee samat tiedot, mutta ei vaadi lajiteltuja tietoja.)Kun käytät by Smoking_Status-lauseketta, DATA-askel luo automaattisesti ensimmäisen.Smoking_Status ja viimeinen.Smoking_Status indikaattorimuuttujat. Nimensä mukaisesti ensimmäinen.Smoking_Status-muuttujan arvo on kunkin ryhmittäin ensimmäisen havainnon arvo 1 ja muuten arvo 0.(Oikeammin ensimmäisen tietueen ja sellaisten tietueiden arvo on 1, joiden Smoking_Status-muuttuja on erilainen kuin edellisen tietueen.) Samoin viimeinen.Smoking_Status indicator-muuttujalla on kunkin ryhmän viimeisen havainnon arvo 1 ja muussa tapauksessa arvo 0.
seuraava TIETOVAIHE määrittelee muuttujan nimeltä Count ja alustaa Count=0 jokaisen alussa ryhmittäin. Jokaista ryhmäkohtaista havaintoa kohti Laskemismuuttujaa korotetaan 1: llä. Kun kunkin ryhmän viimeinen tietue luetaan, tämä tietue kirjoitetaan laskentatietoaineistoon.
data Count; set Heart; / * tiedot lajitellaan Smoking_Status * /BY Smoking_Status; / * luo automaattisesti indikaattorin vars * / if FIRST.Smoking_Status sitten Count = 0; / * alustaa laskenta jokaisen ryhmän alussa */ Count + 1; /* inkrement Count kunkin tietueen */ IF LAST.Smoking_Status; / * output only the last record of each BY group * / run; proc print data=Count noobs; format Count comma10.; var Smoking_Status Count; run;
sama tekniikka mahdollistaa muuttujan arvojen kerryttämisen ryhmän sisällä. Voit esimerkiksi kerätä kaikkien potilaiden kokonaispainon kussakin tupakointiryhmässä käyttämällä seuraavia lausuntoja:
jos ensin.Smoking_Status then cumWt = 0; cumWt + Paino;
tätä samaa tekniikkaa voidaan käyttää kerätä tuloja eri lähteistä, kuten osastot, kaupat, tai alueilla.
käytä ensin. ja viimeinen. muuttujat hoidon keston laskemiseksi
toinen ensimmäisen käytön yleinen käyttö.vaihteleva ja viimeinen.muuttuvien indikaattorimuuttujien avulla määritetään potilaan ensimmäisen käynnin ja viimeisen käynnin välinen aika. Harkitse seuraavaa DATAVAIHETTA, jossa määritellään päivämäärät ja painot neljälle miespotilaalle, jotka kävivät klinikalla osana painonlaskuohjelmaa.:
data potilaat;informat Date date7.; muoto päiväys 7. Potilas Z4.1021 04Jan16 302 1042 06jan16 2851053 07Jan16 325 1063 11jan16 2911053 01Feb16 299 1021 01Feb16 2881063 09Feb16 283 1042 16feb16 2791021 07mar16 280 1063 09mar16 2721042 28mar16 272 1021 04apr16 2731063 20apr16 270 1053 28apr16 2891053 13tai16 295 1063 31tai16 269;
näitä tietoja voi lajitella potilastunnuksen ja käyntipäivän mukaan. Lajittelun jälkeen jokaisen potilaan ensimmäinen merkintä sisältää ensimmäisen käynnin vastaanotolla ja viimeinen merkintä viimeisen käynnin. Voit vähentää potilaan paino näiden päivämäärien määrittää, kuinka paljon potilas sai tai menetti kokeilun aikana. Voit myös käyttää INTCK toiminto laskea kulunut aika käyntien välillä. Jos haluat mitata aikaa päivinä, voit vähentää päivämäärät, mutta INTCK-toiminnon avulla voit laskea kesto vuoden, kuukauden, viikon ja muut aikayksiköt.
proc sort data=potilaat; Potilastiedon päiväyksen mukaan; suorita; tietojen painonlasku; aseta potilaat; Potilastiedon mukaan; säilytä aloituspäivämäärä; / * säilytä aloitusarvot * / jos ensin.Potilas sitten tehdä; startDate = Date; startWeight = Weight; / * muista alkuarvot * / end; if LAST.PatientID then do; endDate = Date; endWeight = Weight; elapsedDays = intck('day', startDate, endDate); /* kulunut aika (päivinä) */ weightLoss = startWeight - endWeight; /* weightloss = weightLoss/ elapsedDays; / * average weightloss / weightLoss/ elapsedDays; / * average weightloss per day * / output; / * output only the last record in each group * / end; run; proc print noobs;var PatientID elapsedDays startWeight endWeight painolasti avgweightloss; Run;
tulostiedoissa esitetään yhteenveto kunkin potilaan toimista klinikalla, mukaan lukien hänen keskimääräinen painonlaskunsa ja hoidon kesto.
jotkut ohjelmoijat ajattelevat, että ensimmäinen.vaihteleva ja viimeinen.muuttujien indikaattorimuuttujat edellyttävät, että tiedot on lajiteltava, mutta se ei pidä paikkaansa. Tilapäiset muuttujat luodaan aina, kun käytät lauseketta DATAVAIHEESSA. Voit käyttää tiliotteella NONSORT-vaihtoehtoa käsitelläksesi tietueita lajittelujärjestyksestä riippumatta.
Yhteenveto
tiivistelmässä TIETOASKELEEN lauseke luo automaattisesti kaksi indikaattorimuuttujaa. Muuttujien avulla voit määrittää jokaisen ensimmäisen ja viimeisen tietueen ryhmittäin. Tyypillisesti ensimmäinen.muuttujan indikaattoria käytetään yhteenvetotilastojen alustamiseen ja mittauksen alkuarvojen muistamiseen.Viimeinen.laskutoimitusten tuloksen tuottamiseen käytetään muuttujaindikaattoria, joka sisältää usein yksinkertaisia kuvailevia tilastoja, kuten summan, erotuksen, maksimin, minimin tai keskiarvon.
ryhmäkohtainen käsittely TIETOVAIHEESSA on yleinen aihe, jota esitellään SAS: n konferensseissa. Jotkut kirjoittajat käyttävät FIRST.BY ja LAST.BY indikaattorimuuttujien nimenä. Lisätietoja, suosittelen paperi ”voima lausuman” (Choate and Dunn, 2007). SAS toimittaa myös useita näytteitä RYHMÄKOHTAISESTA käsittelystä SAS: n TIETOVAIHEESSA, mukaan lukien seuraavat:
- siirrä puuttumattomat arvot ryhmäkohtaisesti
- ryhmien käyttö tietojen saattamiseksi osaksi kansallista lainsäädäntöä pitkästä laajaan
- Valitse tietty määrä havaintoja kunkin ryhmäkohtaisen