[viesti Survo-keskustelupalstalla (2001-2013)]
Kirjoittaja: | Marjut Schreck |
---|---|
Sähköposti: | - |
Päiväys: | 31.10.2003 11:27 |
Hehkutuksia osa 1 Kirjoittelin aikoinaan SURVO.TUT-lehteen jatkokertomusta otsikolla järjenvastaista ja lukijoiden toivomukset huomioiden ja niistä huolimatta, ajattelin jatkaa sarjaa täällä keskustelupalstalla. Työskentelen siis jonkinlaisena atk-yleishenkilönä Kansanterveyslaitoksella vastaten mm. eri mielenterveyteen liittyvien projektien datojen hallinnasta. Eräs tarmokas psykologi tuosta alakerrasta on jo pidempään tiennyt missä kulkee raja SPSS:n antamien mahdollisuuksien ja todellisen datan muokkaamisen välillä. Hän onkin ottanut SPSS:n käytön ihan kirjaimellisesti ja noudattaa usein periaatetta "Selvität Parhaiten Sotkusi Survolla". Ja eilen taas ovi kävi: Ongelmana oli potilaiden elämäntapahtumia koskeva data. Tapahtumia on kaikenkaikkiaan 150 kolmelta eri mittausajankohdalta, yhteensä siis 450 tapahtumaa ja yhtä tapahtumaa kuvaa aina 4 eri muuttujaa. Yhteensä muuttujia on siis: 450*4=1800. Kutakin tapahtumaa kuvaavista muuttujista yksi kertoo sen, onko tapahtuma riippuvainen henkilön psyykkisestä häiriöstä vai ei. Nyt tarkoituksena olikin käsitellä erikseen sellaisia tapahtumia, jotka olivat riippuvia ja vastaavasti niitä, jotka olivat riippumattomia. Projektia varten palkattu tilastoihminen oli aikansa ongelmaa pähkäillyt ja todennut sitten hiukset hieman harventuneina, että ainahan sen voi tehdä niin, että tekee ensin kaksi kopiota alkuperäisesta datasta ja ottaa sitten käsin pois ensimmäisestä datasta merkinnät niistä kohdista, missä on kyse riippuvista tapahtumista ja vastaavasti toisesta riippumattomista. Tällaiset neuvot kyllä helpottaisivat huomattavasti myös omaa työtilannettani. No, päädyin samaan ratkaisuun sen kahden datan suhteen, mutta sitten alkoikin varsinainen kikkailu: Ekaksi siis määriteltiin muunnokset yhden tapahtuman suhteen: 11 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 12 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 13 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 14 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 15 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 16 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 17 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 18 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) Sitten perään vähän copyointia: 19 *COPY 11,18,END+1 Tässä vaiheessa toimin vähän laiskasti enkä miettinyt miten saisin kopioitua yhdellä komennolla 450 kertaa, mutta nojaamalla esc-nappiin (=aktivoimalla käsky siis 450 kertaa) se onnistui ihan hyvin. VAR-lauseita tuli kirjoitettua komiasti 3600 rivin verran. Lista kieltämättä näyttää ensin vähän tylsältä: 24 *VAR-lauseiden alku: 25 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 26 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 27 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 28 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 29 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 30 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 31 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 32 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) 33 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 34 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 35 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 36 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 37 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 38 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 39 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 40 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) . . . 3617 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 3618 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 3619 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 3620 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 3621 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 3622 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 3623 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 3624 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) Sitten muuttujien numerointi COUNT:lla, lisätietoina aloitusrivi, lopetusrivi, mallirivi, mistä numerosta aloitetaan, millä välillä edetään, ja kuinka monta kertaa samaa lukua toistetaan: 20 *COUNT 24,3624,21,10,1,-8 21 * 11 22 * 23 * 24 *VAR-lauseiden alku: 25 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 26 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 27 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 28 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 29 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 30 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 31 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 32 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) 33 *VAR IR11_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 34 *VAR IR11_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 35 *VAR IR11_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 36 *VAR IR11_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 37 *VAR IR11_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 38 *VAR IR11_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 39 *VAR IR11_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 40 *VAR IR11_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) . . . 3617 *VAR IR4501A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 3618 *VAR IR4501A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 3619 *VAR IR4501A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 3620 *VAR IR4501A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 3621 *VAR IR4501A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 3622 *VAR IR4501A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 3623 *VAR IR4501A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 3624 *VAR IR4501A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) Perään vähän blockin kopiointia, millä sai sievästi numeroinnit kaikkiin tarvittaviin sarakkeisiin. Nyt on listassa lopullinen ryhti: 20 *COUNT 24,3624,21,10,1,-8 21 * 11 22 * 23 * 24 *VAR-lauseiden alku: 25 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1 26 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2) 27 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3) 28 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4) 29 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2 30 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2) 31 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3) 32 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4) 33 *VAR IR11_1A1=if(IR11_1A3>2)then(MISSING)else(IR11_1A1) TO RDATA1 34 *VAR IR11_1A2=if(IR11_1A3>2)then(MISSING)else(IR11_1A2) 35 *VAR IR11_1A3=if(IR11_1A3>2)then(MISSING)else(IR11_1A3) 36 *VAR IR11_1A4=if(IR11_1A3>2)then(MISSING)else(IR11_1A4) 37 *VAR IR11_1A1=if(IR11_1A3<4)then(MISSING)else(IR11_1A1) TO RDATA2 38 *VAR IR11_1A2=if(IR11_1A3<4)then(MISSING)else(IR11_1A2) 39 *VAR IR11_1A3=if(IR11_1A3<4)then(MISSING)else(IR11_1A3) 40 *VAR IR11_1A4=if(IR11_1A3<4)then(MISSING)else(IR11_1A4) . . . 3617 *VAR IR4501A1=if(IR4501A3>2)then(MISSING)else(IR4501A1) TO RDATA1 3618 *VAR IR4501A2=if(IR4501A3>2)then(MISSING)else(IR4501A2) 3619 *VAR IR4501A3=if(IR4501A3>2)then(MISSING)else(IR4501A3) 3620 *VAR IR4501A4=if(IR4501A3>2)then(MISSING)else(IR4501A4) 3621 *VAR IR4501A1=if(IR4501A3<4)then(MISSING)else(IR4501A1) TO RDATA2 3622 *VAR IR4501A2=if(IR4501A3<4)then(MISSING)else(IR4501A2) 3623 *VAR IR4501A3=if(IR4501A3<4)then(MISSING)else(IR4501A3) 3624 *VAR IR4501A4=if(IR4501A3<4)then(MISSING)else(IR4501A4) Sitten vaan jatkuvaa aktivointia ja kupillinen teetä. Pikkaisen kävi kyllä mielessä, että mitenhän tuon tekisi muilla työkaluilla. Mietityttämään jäi vähän myös se, että pitäisiköhän kääntyä terapeutin puoleen, kun vielä nukkumaan mennessäkin pyrki hymy huulille muistellessa päivän työ-tapahtumia. Marjut
Vastaukset: |
---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!