Marko Laine. SAS peruskurssi. versio 1.2

Samankaltaiset tiedostot
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Ohjelmoinnin perusteet Y Python

Muuttujien määrittely

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

TAULUKON TEKEMINEN. Sisällysluettelo

Ohjelmoinnin perusteet Y Python

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Ohjelmoinnin perusteet Y Python

Johdatus Ohjelmointiin

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

Valitse ruudun yläosassa oleva painike Download Scilab.

Ohjelmoinnin perusteet Y Python

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Kieliteknologian ATK-ympäristö Kolmas luento

Jypelin käyttöohjeet» Ruutukentän luominen

Uutiskirjesovelluksen käyttöohje

SEM1, työpaja 2 ( )

5. HelloWorld-ohjelma 5.1

Ohjelmoinnin perusteet Y Python

Luento 4. Timo Savola. 21. huhtikuuta 2006

Ksenos Prime Käyttäjän opas

Ohjelmoinnin perusteet Y Python

SAS-ohjelmiston perusteet 2010

Visma Business AddOn Tositteiden tuonti. Käsikirja

Pikaohje formaatin valmistamiseen

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

KÄYTTÖOHJE. Servia. S solutions

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Ohjeita LINDOn ja LINGOn käyttöön

DOORSin Spreadsheet export/import

Taulukkolaskentaa selkokielellä EXCEL

811120P Diskreetit rakenteet

ASENNUS- JA KÄYTTÖOHJE

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

Asiointipalvelun ohje

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

ARVI-järjestelmän ohje arvioinnin syöttäjälle

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

Ohjelmoinnin peruskurssi Y1

Taulukot. Jukka Harju, Jukka Juslin

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Ohjelmoinnin perusteet Y Python

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

Sisällysluettelo 1 Johdanto Root, koko Opalan pääkäyttäjä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Sähköposti ja uutisryhmät

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Java-kielen perusteet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Versionhallintaa. Versionhallinnan käyttöönotto SAS ympäristössä

Luento 3. Timo Savola. 7. huhtikuuta 2006

RADAR - RANDOM DATA GENERATOR

Ohjelmoinnin peruskurssi Y1

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Matlab- ja Maple- ohjelmointi

Tärkeimmät toiminnot. Kertausta ja uusia toimintoja Wordistä sekä tiedostonhallinnasta. Tärkeimmät toiminnot jatkuu...

Solve laskutus Sivu 1

2017/11/21 17:28 1/2 Tilitapahtumat. Tilitapahtumat... 1 Käyttö:... 1 Asiakirjan kentät:... 1

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

VIIKON VINKKI: Kannattaa tutustua ensin koko tehtävänantoon ja tehdä tehtävä vasta sitten.

HARJOITUSKERTA 1: SPSS-OHJELMAN PERUSKÄYTTÖ JA MUUTTUJAMUUNNOKSET

Makrojen mystinen maailma lyhyt oppimäärä

UpdateIT 2010: Editorin käyttöohje

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

4. Lausekielinen ohjelmointi 4.1

Ubuntu - peruskäyttö. Seuraavassa läpikäydään Ubuntun peruskäyttöä:

Zeon PDF Driver Trial

MrSmart 8-kanavainen lämpötilamittaus ja loggaus, digitoija ja talletusohjelma

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows 1.

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Visma Business AddOn Tuotetarrat. Käsikirja

Julkaiseminen verkossa

Excel pivot. Sisällys

Sisällys Clerica Web-sovellusten käytön aloittaminen 2

1. HARJOITUS harjoitus3_korjaus.doc

Tulosta yrityksesi tuloslaskelma ja tase myöhempää tarkastusta varten. Ota varmuuskopio tilanteesta ennen tilimuunnosta.

Hyvän salasanan tunnusmerkit Hyökkääjästä salasanan pitää näyttää satunnaiselta merkkijonolta. Hyvän salasanan luominen: Luo mahdollisimman pitkä

Ohjelmoinnin perusteet Y Python

Tilastolliset toiminnot

Ohjelmoinnin perusteet Y Python

Datatähti 2019 loppu

SPSS-pikaohje. Jukka Jauhiainen OAMK / Tekniikan yksikkö

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa.

8. Näppäimistöltä lukeminen 8.1

Asiakastietojen tuominen toisesta tietokannasta etaika-ohjelmistoon. Kuinka yhdistän tietoja eri asiakastietokantojen välillä

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Tikon kassamaksujen käsittely

Send-It ilmoittautumisjärjestelmä (judotapahtumat Suomessa)

Transkriptio:

Marko Laine SAS peruskurssi versio 1.2

Copyright c Marko Laine ja Helsingin yliopiston atk-osasto. Oppaan luvaton kopiominen ja jakelu paperilla tai elektronisesti kielletty.

Sisältö 1 Johdanto 1 1.1 Käytetyt merkintätavat........................ 2 1.2 SAS-ohjelmisto............................ 2 1.3 Havaintoaineisto........................... 2 1.4 Oppaan esimerkkiaineistot...................... 3 1.4.1 Koululaisaineisto....................... 3 1.4.2 Autoaineisto......................... 4 2 SAS-komentokieli 5 2.1 DATA-askel ja PROC-askel...................... 7 2.2 Esimerkkiohjelma........................... 7 2.3 Kommentit SAS-koodissa....................... 7 2.4 Käyttäjän antamat nimet....................... 9 2.5 SAS-havaintotiedostoon viittaaminen................ 10 2.6 Tilapäinen SAS-havaintoaineisto................... 10 2.7 Libraries-ikkuna............................ 11 3 SAS Windows-ympäristössä 13 3.1 SAS-ikkunat.............................. 13 3.2 Program Editor-ikkuna........................ 14 3.3 LOG-ikkuna.............................. 15 3.4 OUTPUT-ikkuna........................... 16 3.5 Asetuksia............................... 17 3.6 HELP-ikkuna............................. 18 3.7 KEYS-ikkuna............................. 18 3.8 SAS-järjestelmäoptiot......................... 19 3.9 Ohjelma- ja tulostiedostojen tallennus levylle............ 20 3.10 Windows SAS:n oletushakemisto................... 20 3.11 SAS-istunnon lopettaminen...................... 21 3.12 Automaattisesti suoritettavat SAS-lauseet.............. 21 3.13 Virheet SAS-ohjelmissa ja niistä toipuminen............. 21 3.13.1 Kielioppi- eli syntaksivirheet................. 22 3.13.2 DATA-askeleen virheet.................... 22 i

ii Sisältö 4 Havaintoaineiston luonti 23 4.1 Aineiston saattaminen tietokoneella käsiteltävään muotoon..... 23 4.1.1 Työvaiheet.......................... 23 4.2 SAS-havaintotiedosto......................... 24 4.3 Havaintojen luku........................... 24 4.3.1 INPUT-lause......................... 26 4.3.2 Havaintojen luku sarakenumeroita käyttäen......... 26 4.3.3 Vapaa formaatti........................ 28 4.3.4 Muuttujien sijainnin määrittely lukuformaattien avulla... 29 4.3.5 Lukuformaatin modifioijien käyttö.............. 31 4.3.6 Syöttörivin ohjausmerkkien käyttö.............. 32 4.3.7 Datan luvussa ja formaattien käytössä huomattavaa..... 33 4.3.8 Muuttujien selitystekstit................... 33 4.3.9 Ulkoisen tiedoston luonti................... 34 4.4 FSEDIT-proseduuri.......................... 34 4.5 Havaintotiedostojen siirto....................... 35 4.5.1 SAS-transport-tiedoston luominen.............. 36 4.5.2 Muut tilasto-ohjelmat ja SAS................ 37 4.5.3 Excel-taulun siirto SAS:iin.................. 37 5 Aineiston alustava tarkastelu 39 5.1 Proseduuriaskel............................ 40 5.2 VIEWTABLE-ikkuna......................... 41 5.3 Perustunnuslukuja........................... 41 5.3.1 Proseduuri MEANS..................... 42 5.3.2 Proseduuri UNIVARIATE.................. 44 5.4 Tehtävien suorittaminen osa-aineistoissa............... 46 5.5 Taulukointi: proseduuri FREQ.................... 46 5.6 Taulukointi: proseduuri TABULATE................. 48 5.6.1 Taulukon ulkoasun määrittely................ 50 5.7 Muut proseduurit........................... 51 6 SAS grafiikka 53 6.1 Pylväskuvioita: proseduuri GCHART................ 53 6.2 Yhteisjakaumakuvat: proseduuri GPLOT............... 57 6.3 SYMBOL-määrittely......................... 58 6.4 AXIS- ja LEGEND-lauseet...................... 61 6.5 Havaintotiedoston muunnokset.................... 65

Sisältö iii 6.6 Kartat................................. 69 6.7 Kolmiulotteiset kuvaajat....................... 70 6.8 Grafiikan tulostus ja GOPTIONS-lause................ 72 6.8.1 Graafinen katalogi...................... 74 6.8.2 Graafinen editori....................... 74 7 Havaintoaineiston muunnokset 77 7.1 Muuttujien muunnokset........................ 77 7.1.1 Havaintojen valinta...................... 79 7.1.2 Funktiomuunnokset..................... 80 7.1.3 Puuttuvat tiedot muunnoksissa................ 81 7.1.4 Muunnoslauseita....................... 82 7.1.5 Luokitus........................... 84 7.1.6 FORMAT-proseduurin käyttö luokituksessa......... 85 7.1.7 Uudelleenkoodaus...................... 86 7.1.8 Havaintojen monistaminen.................. 87 7.1.9 Havaintojen supistaminen.................. 88 7.2 Havaintotiedostojen yhdistäminen.................. 88 7.3 SAS-makrot.............................. 89 7.3.1 %LET-lause.......................... 91 8 SAS/INSIGHT 93 8.1 INSIGHTin käynnistys ja dataikkuna................. 93 8.2 Histogrammit ja jakaumasovitukset................. 94 8.3 Yhteisjakaumakuvat ja mallisovitukset................ 96 8.4 Muita INSIGHT-analyysejä...................... 96 Kirjallisuutta 99 Hakemisto 101

1. Johdanto Tämä opas on tarkoitettu SAS 1 -tilasto-ohjelmiston oppaaksi. SAS (Statistical Analysis System) on yhdysvaltalaisen SAS Institute Inc. -yhtiön ylläpitämä ja markkinoima ohjelmisto. Tässä oppaassa keskitytään SAS-ohjelmiston peruskäyttöön dataanalyysin välineenä Microsoft Windows-ympäristössä. SAS-ohjelmiston muuhun kuin tilastolliseen tietojenkäsittelyyn liittyvään käyttöön voi tutustua esimerkiksi SAS-yhtiön kotisivujen avulla (www.sas.com). Opas perustuu alunperin Markku Korhosen kirjoittamiin SAS-oppaisiin sekä kirjoittajan pitämiin Helsingin yliopiston atk-keskuksen järjestämiin SAS-peruskursseihin. Osa SAS/GRAPH-osiota kuvaavasta tekstistä perustuu Antti Nevanlinnan julkaisemattomaan grafiikkaoppaaseen. Opas on tarkoitettu SAS-peruskurssin oheismateriaaliksi ja myös itseopiskelun tueksi. Opas ei korvaa varsinaisia SAS-manuaaleja. Varsinkin tilastollisia proseduureja käytettäessä on syytä olla selvillä tarvittavasta tilastotieteestä sekä tarkistettava SAS-manuaaleista tuloslistauksissa käytettävät merkinnät. Oppaan version 1.2 suurin muutos on se, että koko opas on paperiversion lisäksi luettavissa WWW-muodossa. Uusi versio on lisäksi muutettu vastaamaan SAS-ohjelman versiota 6.12. Käyttöympäristönä on entisen Windows 3.1:n sijasta Windows 95/98. Otan mielelläni vastaan opasta koskevia kommentteja ja parannusehdotuksia. Tuusula, syyskuun 1. päivä 1999 Marko Laine Marko.Laine@Helsinki.FI 1 SAS ja muut oppaassa mainitut SAS-tuotteet, kuten SAS/STAT, SAS/GRAPH ja SAS/INSIGHT ovat SAS Institute Inc. Cary, NC, USA yhtiön rekisteröimiä tavaramerkkejä. 1

2 1 Johdanto 1.1 Käytetyt merkintätavat Tässä oppaassa käytetään seuraavia merkkilajeja: Courier-merkkilajia käytetään SAS-ohjelmalistauksissa ja esimerkkitulostuksissa. Näin kirjoitetut kohdat käyttäjä korvaa omilla valinnoillaan. Vahvennettu Courier osoittaa Windows-alasvetovalikkojen valintoja. Merkintä [katso kohta 1.1] viittaa oppaan kappalenumeroon, jossa on kerrottu lisätietoa edellä kerrotulle asialle tai käsitteelle. 1.2 SAS-ohjelmisto SAS-ohjelmisto koostuu eri data-analyysin ja tilastollisen tietojenkäsittelyn aloihin erikoistuneista osista, joita kaikkia voidaan käyttää yhteisen SAS-käyttöliittymän avulla. SAS-ohjelmistoa voidaan hankkia ja asentaa mm. seuraavissa osissa: base SAS SAS/STAT SAS/GRAPH SAS/FSP SAS/AF SAS/IML SAS/ETS SAS/OR SAS/ASSIST SAS/ACCESS SAS/INSIGHT Kaikille välttämätön perusosa: datan käsittely ja raporttien laadinta. Tilastollinen analyysi. Graafiset sovellukset. Lomakepohjien laadinta ja aineiston tallennus. Käyttöliittymien laadinta SAS-ohjelmiin. Matriisikieli omien tilastomenetelmien ohjelmoimiseksi. Ekonometriset mallit ja aikasarja-analyysi. Lineaarinen ohjelmointi ja optimointi. Valikko-ohjattu käyttöliityntä eri SAS-proseduureihin. Tietokantayhteydet, esim. Oracle, dbase. Datan interaktiivinen graafinen tutkiminen. Tässä oppaassa keskitytään SAS-käytön perusteisiin: havaintoaineiston luontiin ja aineiston alustavaan tarkasteluun tilastollisten tunnuslukujen, taulukoiden ja graafisten kuvien avulla. Tilastollisia proseduureja tarkastellaan lähemmin Markku Korhosen SAS-jatkokurssi-oppaassa. Jatkokurssioppaan kotisivu on http://touko.helsinki.fi/sasopas/. 1.3 Havaintoaineisto Tässä oppaassa SAS-käytön tarkoituksena on tilastollisen aineiston eli datan käsitteleminen ja analysointi. Lähtökohtana on havaintoaineisto jonka ominaisuuksista olemme kiinnostuneet. Ensimmäisenä esimerkkinä havaintoaineistosta käyköön maatalouteen liittyvästä kokeesta saatu data. Mielenkiinnon kohteena on vehnälajikkeen ja lannoitteen vaikutus satoon. Tutkija on tehnyt tilastollisen kokeen rajaamalla peltotilkun ruutuihin ja jakamalla ruudut kahden lannoitetyypin ja lajikkeen kesken. Tuloksena on saatu alla oleva aineisto

1.4 Oppaan esimerkkiaineistot 3 nro sarake vaihteluväli muuttujan nimi muuttujan kuvaus 1 1-4 101-235 SCHOOL koulun tunnus 2 5-7 1-31 STUDENT oppilaan tunnus 3 9 1-2 SEX sukupuoli (1=poika, 2=tyttö) 4 11 7-9 GRADE luokka-aste 5 13 1-3 LIKESC suhtautuminen luonnontieteisiin 1=suosikkiaineita, 2=keskimäärin suosittu, 3=vähiten suosittu 6 15-17 -17-158 KNOWLDGE tietotestin pistemäärä 7 18-20 -42-195 COMPREHN ymmärtämistestin pistemäärä 8 21-23 -17-108 APPLICAT soveltamistaidon testin pistemäärä 9 24-26 -22-90 MENTALPR älykkyystestin pistemäärä Taulukko 1.1: IEA-aineiston muuttujaluettelo koeruutu lajike lannoite sato 1 1 1 35.4 2 2 1 37.9 3 1 2 36.7 4 2 2 38.2 5 1 1 41.6 6 2 1 40.3 7 1 2 42.7 8 2 2 41.6 Esimerkkitapauksessa havaintoyksikkönä on koeruutu, johon liittyvät tiedot muodostavat yhden havainnon ja jota siis kuvaa taulukon yksi vaakarivi. Taulukon pystyrivit esittävät aineiston muuttujia nimeltään koeruutu, lajike, lannoite ja sato. Näiden 8 koeruudun havainnot muodostavat yhdessä havaintoaineiston. Ensimmäinen vaihe aineiston käsittelyssä on sen saattaminen tietokoneen ymmärtämään muotoon esimerkiksi syöttämällä se jonkun editorin avulla mikron näppäimistöltä ja tallettamalla levylle raaka-aineistona. Aineiston tallennusohjelmana voidaan käyttää myös SAS-ohjelmiston FSEDIT-proseduuria. [katso kohta 4.4] 1.4 Oppaan esimerkkiaineistot 1.4.1 Koululaisaineisto Jatkossa SAS-proseduureja sovelletaan kahteen alla kuvattavaan aineistoon. Eräässä tutkimuksessa haluttiin selvittää koululaisten suhtautumista luonnontiedeaineisiin sekä erilaisten taidollisia ja henkisiä kykyjä mittaavien testien suhdetta. Aineiston muuttujat on kuvattu taulukossa 1.1. Varsinainen data on talletettu tietokoneen levylle raakadatatiedostoon iea.dat. Se sisältää rivin jokaista havaintoa kohti. Alkuosa tästä tiedostosta sisältää rivit: 101 3 1 7 2 108 85 70 53 101 6 1 7 2 120108 58 28

4 1 Johdanto nimi NAME MPG CYLS DISPL HORSEP WEIGHT ACCELE YEAR ORIGIN selitys auton merkki ja malli kulutus mailia gallonalla sylintereiden lukumäärä moottorintilavuus kuutiotuumina keskihevosvoima paino paunoina kiihtyvyys nollasta 60 mailiin tunnissa vuosimalli auton alkuperä, amerikkalainen, eurooppalainen vai japanilainen Taulukko 1.2: Autoaineiston muuttujaluettelo 1.4.2 Autoaineisto 101 8 2 7 2 33 20 33 28 101 10 1 7 2 58 83 58 15 102 1 1 7 2 35 20 58-9 102 4 2 7 2 73 40 20 20 102 7 1 7 2 50 80 38 5 102 10 1 7 3 58-17 58 3 102 12 1 7 2 58 58 70 15 Kukin havainto on talletettu omalle rivilleen ja muuttujat ovat joka rivillä samoilla sarakkeilla taulukossa 1.1 kuvatulla tavalla. SAS pystyy helposti lukemaan myös muulla tavalla järjestettyä dataa, [katso kohta 4.3] olennaista on, että aineisto on havainnoista ja muuttujista muodostuvan havaintomatriisin muodossa. SAS-työskentelyn vaiheet ovat nyt: Havainnot sisältävän raakadatatiedoston lukeminen SAS-ohjelmaan. [katso kohta 4.3] Muuttujien nimeäminen ja niiden tyyppien määrittäminen. [katso kohta 4.3.1] Aineiston tallettaminen SAS-järjestelmätiedostomuotoon. [katso kohta 4.2] Aineiston tilastollinen tarkastelu. [katso kohta 5] Toinen esimerkkiaineisto on autoaineisto. Se sisältää 406 autoa ja on peräisin Statlib-arkistosta (http://lib.stat.cmu.edu/datasets/). Siihen on kerätty teknisiä tietoja eräässä Yhdysvalloissa 1970-luvun alussa järjestetyssä autonäyttelyssä olleista autoista. Tämänkin aineiston lähtökohtana on raaka-aineisto tiedostossa cars.dat ja ennen datan käsittelyä SAS-ohjelmalla on siitä muodostettava SAS-havaintoaineisto.

2. SAS-komentokieli SAS-ohjelmistoa käytetään SAS-komentokielen avulla. Komennot kirjoitetaan joko erilliseen tiedostoon tai Windows-käytössä Program Editor-ikkunaan. Vaikka SASohjelmaa käytetään Windows-ympäristössä, jossa monia ohjelmistoja on mahdollista operoida pelkästään hiiren avulla, on useimpien SAS-toimenpiteiden tekemiseksi kirjoitettava näppäimistöltä (usein muutaman rivin pituinen) SAS-ohjelma. SAS suorittaa sille lähetetyn ohjelman ja palauttaa sitten tulokset. Tässä luvussa kuvataan SAS-ohjelmointikielen rakennetta. Oppaan jaksosta 4 alkaen tarkastellaan erilaisten toimien, kuten datan luominen tai keskiarvojen laskeminen, tekemistä SAS-ohjelmien avulla. SAS-komentokieli muodostuu SAS-lauseista. SAS-lause puolestaan muodostuu käskystä eli avainsanasta, nimistä, operaattoreista ja erikoismerkeistä. Lause alkaa käskyllä ja päättyy puolipisteeseen ;. Isot ja pienet kirjaimet ovat SAS-kielessä samanarvoisia ja komentorivin voi katkaista halutusta paikasta. Tässä oppaassa on kaikki esimerkki-sas-ohjelmat kirjoitettu selvyyden vuoksi isoilla kirjaimilla. Seuraavaa SAS-ohjelmaa voitaisiin käyttää johdantoluvun kappaleen 1.3 satoaineiston muodostamiseen. Avainsanoja ovat alla DATA, INPUT, CARDS, RUN ja PROC. Lause PROC PRINT; aiheuttaa luodun aineiston tulostumisen OUTPUTikkunaan. DATA SATO; INPUT KOERUUTU LAJIKE LANNOITE SATO; CARDS; 1 1 1 35.4 2 2 1 37.9 3 1 2 36.7 4 2 2 38.2 5 1 1 41.6 6 2 1 40.3 7 1 2 42.7 8 2 2 41.6 ; PROC PRINT; Kuvassa 2.1 on vastaava Windows-kuvaruutunäyttö. SAS-ohjelma kirjoitetaan Program Editor-ikkunaan. Se suoritetaan valitsemalla hiirellä SAS-pääikkunan Locals-alasvetovalikosta kohta Submit. Tämän jälkeen tiedot ohjelman ajon onnistumisesta menevät LOG-ikkunaan. Mahdolliset tuloslistaukset menevät OUT- PUT-ikkunaan. Tässä tapauksessa tulostuksen aiheuttaa lause PROC PRINT; ohjelman lopussa. Sen seurauksena koko luotu SAS-aineisto tulostuu OUTPUT-ikkunaan. Näin toteamme aineiston luonnin onnistuneen. 5

6 2 SAS-komentokieli Varsinaisen analyysin, esimerkiksi sen tutkimisen vaikuttaako lannoite satoon, voimme tehdä myöhemmin kirjoittamalla uuden SAS-ohjelman, joka käyttää nyt luotua aineistoa ja jotain SAS:n tilastollista proseduuria. Esimerkiksi tavallinen kaksisuuntainen varianssianalyysi laskettaisiin seuraavilla SAS-komennoilla. PROC ANOVA DATA=SATO; CLASS LAJIKE LANNOITE; MODEL SATO = LAJIKE LANNOITE; Kuva 2.1: SATO-aineiston luominen SAS:lla. Huomattavaa SAS-komentokielen huomionarvoisia seikkoja ovat: SAS-lause päättyy aina puolipisteeseen. SAS-ohjelmassa ovat pienet ja suuret kirjaimet samanarvoisia. Samalla rivillä voi olla useampia SAS-lauseita. SAS-lauseen voi katkaista haluamastaan paikasta jatkumaan seuraavalle riville kunhan sanaa ei katkaista. Kuten ohjelmointikielet yleensä on SAS tarkka oikeinkirjoituksesta ja välimerkkien, kuten puolipisteen käytöstä. SAS suorittaa ohjelman vasta Submit-komennon antamisen jälkeen.

2.1 DATA-askel ja PROC-askel 7 2.1 DATA-askel ja PROC-askel Aineistolle suoritettavat toimenpiteet määritellään siis käyttäjän kirjoittamien SASohjelmien avulla. SAS-ohjelmat voidaan toimintansa puolesta jakaa kahteen osaan: DATA-askeleeseen ja PROC-askeleeseen. DATA-askel PROCaskel DATA-askeleen käskyillä luetaan raaka-aineisto SAS-havaintotiedostoksi. DATAaskelen käskyjen seurauksena syntyy aina SAS-havaintotiedosto, joko tilapäinen tai levylle tallettuva pysyvä tiedosto. Askel alkaa DATA-sanalla, jonka jälkeen määritellään syntyvän havaintotiedoston nimi. DATA-askeleessa voidaan myös tehdä aineistomuunnoksia, useampien aineistotiedostojen yhdistelyjä jne. [katso kohta 7] PROC-askeleessa eli proseduuriaskeleessa käsittelemme DATA-askeleen avulla luotua SAS-havaintoaineistoa. PROC-askeleessa kutsutaan haluttua SAS-ohjelmaa eli proseduuria. Esimerkiksi SAS:n tilasto-osa SAS/STAT sisältää noin 35 erilaista proseduuria tilastollisten analyysien suorittamiseksi. Graafisten kuvien piirtämiseen käytetään SAS/GRAPH-osion proseduureja jne. Näiden kaikkien proseduurien rakenne ja käyttötapa on jokseenkin samanlainen. Tavallisesti tulostaa SAS-proseduuri tuloksensa OUTPUT-ikkunaan, josta ne voi edelleen lähettää kirjoittimelle tai tallettaa tiedostoon myöhempää käyttöä varten. Windows-käytössä tekstin siirto ohjelmasta toiseen, esimerkiksi tekstinkäsittelyohjelmaan, on helppoa hiiren ja Windows-leikepöydän avulla. Sekä DATA- että PROC-askel päättyvät lauseeseen RUN, jonka luettuaan SAS alkaa suorittaa tätä edeltäviä lauseita. [katso kohta 2.1] Kuvassa 2.2 on eri työvaiheet esitetty kaaviona SAS-komentokielen kannalta. 2.2 Esimerkkiohjelma Seuraavassa SAS-ohjelmassa havaintoaineiston muodostava data luetaan ASCIIeli tekstitiedostosta nimeltä c:\data\tiedot.dat. Se sisältää kolme muuttujaa X, Y ja Z. Syntyvä SAS-havaintotiedosto AINEISTO talletetaan hakemistoon c:\data. MEANS-proseduurilla listataan aineiston keskiarvot ja muita perustunnuslukuja OUTPUT-ikkunaan. LIBNAME MYLIB c:\data ; DATA MYLIB.AINEISTO; INFILE c:\data\tiedot.dat ; INPUT X Y Z; PROC MEANS DATA=MYLIB.AINEISTO; TITLE Keskiarvoja ja muita tunnuslukuja ; 2.3 Kommentit SAS-koodissa Kun SAS-ohjelma on kirjoitettu ja saatu toimivaksi, kannattaa se tallettaa myöhempää uutta käyttöä varten. Jotta myöhemmin muistaisi, mitä ohjelmalla on tarkoitus

8 2 SAS-komentokieli RAAKADATA DATA-askel data mylib.data; infile data.dat ; input x y z; run; SAS-DATA TIEDOSTO TULOKSET sas system x y z ------- 2 4 6 3 5 1 8 3 7 PROC-askel proc means; var x y z; run; RAPORTIT Kuva 2.2: Datasta raporttiin: SAS-ohjelman eri vaiheet, DATA- ja PROC-askel. tehdä, voi SAS-koodin sekaan kirjoittaa kommentteja. Jotta kommentit eivät sekoittaisi SAS-ohjelman toimintaa, on ne syytä kirjoittaa käyttäen SAS:n kommenttimerkintätapaa. Tässä on kaksi vaihtoehtoa. Ohjelman osa, joka alkaa merkkiparilla /* ja loppuu merkkipariin */ tulkitaan kommenteiksi. Näitä kommentteja voi olla myös SAS-lauseiden sisällä, ei kuitenkaan niin, että syntyy sisäkkäisiä kommentteja. Toinen kommenttitapa on tehdä SAS-lause, joka alkaa tähtimerkillä * ja SAS-lauseen tapaan loppuu puolipisteeseen ;. /* Tässä on pitkä kommentti, joka jatkuu seuraavallekin riville */ PROC NPAR1WAY /* WILCOXON */ DATA=SASUSER.MYDATA; * proseduurin kutsussa on avainsana WILCOXON kommentoitu ulos ; CLASS GROUP; VAR Y; /* muista RUN loppuun */

2.4 Käyttäjän antamat nimet 9 2.4 Käyttäjän antamat nimet SAS-ohjelmissa annetaan havaintoaineiston muuttujille nimet DATA-askeleen IN- PUT-lauseessa. Nimi täytyy keksiä myös itse havaintoaineistolle ja eräille muillekin SAS-objekteille, kuten käyttäjän määrittelemille tulostusformaateille. Näissä nimissä tulee noudattaa seuraavia sääntöjä. Nimi saa olla enintään 8 merkkiä pitkä. Se saa sisältää englantilaisen aakkosten kirjaimia (A Z), numeroita ja alaviivan (_). Ensimmäinen merkki ei saa olla numero. Pienten ja isojen kirjaimien välillä ei ole eroa ja SAS konvertoi nimet omassa esitysmuodossaan isoiksi kirjaimiksi. Kiellettyjä nimiä ovat kaikki erikoismerkkejä (Ä, Ö, Å, #, @, &, jne.) sisältävät sekä tietyt varatut (normaalisti alaviivalla alkavat ja siihen loppuvat) sanat, kuten _N_, _LAST_ ja _ALL_. Muuttujia nimettäessä voidaan käyttää lyhennettä Xm-Xn viittaamaan muuttujaluetteloon Xm Xm+1 Xm+2... Xn. Esimerkiksi lause INPUT TESTI1-TESTI100 DATA-askeleen yhteydessä lukee 100 muuttujaa ja antaa niille nimet TESTI1, TES- TI2,..., TESTI100. Jo olemassa oleviin muuttujiin voidaan lisäksi käyttää lyhennysmerkintää X: viittaamaan kaikkiin X:llä alkaviin nimiin, esimerkiksi KOE: voisi viitata muuttujiin KOEA, KOEB ja KOEC. Aineistossa peräkkäin oleviin muuttujiin voi viitata merkinnällä -. Jos muuttujat KOERUUTU, LAJIKE, LANNOITE ja SATO ovat aineiston peräkkäisinä muuttujina, ovat seuraavat kaksi merkintää identtisiä: VAR KOERUUTU LAJIKE LANNOITE SATO; VAR KOERUUTU -- SATO; Mikäli osa aineiston muuttujista on tekstimuuttujia, voidaan merkinnällä - NUMERIC- rajoittaa viittaus koskemaan ainoastaan numeerisia muuttujia, vastaavasti merkinnällä -CHARACTER- viitataan pelkästään tekstimuuttujiin, esimerkiksi VAR CITY-NUMERIC-DIST2; VAR CITY-CHARACTER-DIST2; Mikäli viittaus koskee kaikkia SAS-havaintotiedoston tietyn tyyppisiä muuttujia, voidaan niihin viitata SAS-tunnuksilla: _ALL NUMERIC CHARACTER_ kaikki muuttujat kaikki numeeriset muuttujat kaikki tekstimuuttujat

10 2 SAS-komentokieli 2.5 SAS-havaintotiedostoon viittaaminen SAS-ohjelmassa viitataan SAS-muodossa olevaan havaintoaineistoon [katso kohta 4.2] kaksiosaisella nimellä, jossa ensimmäinen osa kertoo sen hakemiston, jossa tiedosto sijaitsee ja toinen osa kertoo havaintotiedoston nimen. SAS-manuaalissa ja helpissä käytetään käsitteitä library ja data set. Esimerkiksi lauseissa DATA SASUSER.IEA; PROC MEANS DATA=MYLIB.AINEISTO; viitataan SAS-havaintotiedostoihin SASUSER.IEA ja MYLIB.AINEISTO. Tärkein valmiiksi määritelty hakemistoviittaus on SASUSER. Se viittaa käyttäjän kotihakemiston alihakemistoon nimeltään sasuser. Kotihakemisto on SASasennuksesta riippuen esimerkiksi mikroverkon kotihakemisto tai se hakemisto, josta SAS käynnistetään. Tämän oppaan esimerkeissä käytetään useimmiten SA- SUSER-hakemistoa SAS-havaintoaineistojen säilytyspaikkana. Jos alihakemistoa sasuser ei ole, se luodaan automaattisesti SAS:n käynnistyksen yhteydessä. Muita valmiita hakemistomäärittelyitä ovat SASHELP, joka sisältää SAS-ohjelmiston käyttämiä aputiedostoja ja MAPS, jossa on SAS:n mukana tulevat karttatiedostot. Jos SAS-havaintoaineisto halutaan tallettaa, tai sitä käyttää jonkin SAS-proseduurin kanssa, jossakin muussa hakemistossa kuin sellaisessa, johon on olemassa valmis hakemistomääritys, on luotava uusi määritys. Se tehdään LIBNAME-lauseella. Siinä asetetaan SAS-nimi viittaamaan olemassaolevan hakemistoon. LIBNAME-lauseen yleinen muoto on LIBNAME tunnus hakemisto ; missä tunnus on käyttäjän määrittelemä hakemistotunnus ja yksinkertaisissa lainausmerkeissä annetaan haluttu hakemisto siten kun siihen käyttöjärjestelmätasolla kuluu viitata. Esimerkkejä eri käyttöympäristöillä toimivista LIBNAME-lauseista: LIBNAME MYLIB F:\MJLAINE\SAS\ ; /* Windows */ LIBNAME MYLIB /sas/ ; /* Unix */ LIBNAME MYLIB HYLK_DISK:[MJLAINE.SAS] ; /* VAX */ SAS-istunnossa annetut LIBNAME-määritykset ovat voimassa vain saman SASistunnon ajan. Usein käytettävät LIBNAME-lauseet kannattaa sijoittaa AU- TOEXEC.SAS-tiedostoon, [katso kohta 3.12] jolloin ne ovat voimassa automaattisesti. Voimassaolevat LIBNAME-määritykset näkee Globals-valikon Access- Display libraries-kohdasta saatavasta Libraries-ikkunasta. 2.6 Tilapäinen SAS-havaintoaineisto Jos havaintoaineiston SAS-nimi on yksiosainen, esimerkiksi DATA MYDATA;

2.7 Libraries-ikkuna 11 on kyseessä tilapäinen SAS-aineisto, joka on olemassa vain ko. SAS-istunnon ajan. Tätä käytetään kun tehdään muunnoksia, joita ei haluta tallettaa tai välitiedostoina kun data luodaan usean askeleen kautta. Tilapäinen SAS-havaintoaineisto tallettuu LIBNAME-hakemistoon WORK. Seuraavassa esimerkissä luodaan pysyvä SAS-havaintotiedosto, jonka SAS-nimi on MYLIB.TULOS1 ja jonka Windows-tiedostonimeksi tulee C:\DATA\TULOS1.SD2. Aineisto luetaan tekstitiedostosta rawdata.dat. SORT-proseduurilla järjestetään syntynyt SAS-havaintotiedosto havainnoittain aakkosjärjestykseen muuttujan NA- ME suhteen. Järjestetty havaintotiedosto tallettuu tilapäisenä SAS-tiedostona nimellä TILAP. Tämä tilapäinen tiedosto tulostetaan OUTPUT-ikkunaan PRINT-proseduurin avulla. LIBNAME MYLIB C:\DATA ; DATA MYLIB.TULOS1; INFILE rawdata.dat ; INPUT NIMI$ TEST1 - TEST10; PROC SORT DATA=MYLIB.TULOS1 OUT=TILAP; BY NIMI; PROC PRINT DATA=TILAP; 2.7 Libraries-ikkuna SAS:n tapa käsitellä ja nimetä havaintoaineistoja tulee hyvin esille Windows SAS:n pääikkunan ikonipalkistosta löytyvän Libraries-ikonin [ikoni] avulla saatavasta Libraries-ikkunasta. Kuva 2.3. Siinä on Libraries-laatikossa kaikki SAS:n tuntemat hakemistoviittaukset, Folders Assigned-kohdassa valittua hakemistoviittausta vastaava Windows-hakemisto ja Library Contents-laatikossa kaikki hakemistossa sijaitsevat SAS-datat sekä muut SAS:n tuntemat tiedostotyypit. SAS-havaintoaineiston nimeä kaksoisklikkaamalla saa esiin VIEWTABLE-ikkunan, jossa aineistoa voi katsella taulukkomuodossa. [katso kohta 5.2]

12 2 SAS-komentokieli Kuva 2.3: Libraries-ikkuna

3. SAS Windows-ympäristössä Kuva 3.1: MS-Windows ja SAS 3.1 SAS-ikkunat SAS-ohjelman käynnistyttyä näkyy SAS-pääikkuna, jonka sisällä ovat varsinaiset SAS-ikkunat. SAS-ikkunoiden välillä liikutaan kuten muissakin Windows-ohjelmissa. Aktiivinen ikkuna valitaan hiirellä näpäyttämällä tai valitsemalla ikkunan nimi SAS-pääikkunan Windows- tai Globals-alasvetovalikosta. Ikkunoiden kokoa voi muuttaa vetämällä hiirellä ikkunan reunusta. Tärkeitä SAS-ikkunoita ovat: Program Editor Tähän ikkunaan kirjoitetaan SAS-komennot SAS-havaintotiedoston luomiseksi tai sen käsittelemiseksi. Komennot lähetetään suoritettavaksi komennolla SUBMIT (Locals Submit-hiirivalinta tai näppäin F8). 13

14 3 SAS Windows-ympäristössä LOG OUTPUT HELP KEYS FSEDIT SAS-ohjelmien loki- eli valvontatulostus, kuten virheilmoitukset, tulevat tähän ikkunaan. SAS-ohjelmien varsinainen tulostus eli analyysien tai listausten tulokset. Tämä, kuten muutkin ikkunat, voidaan tallettaa tiedostoon tai lähettää kirjoittimelle File-valikon avulla. Avustusruutu. Helppi on kontekstisensitiivinen, jos annat helpkomennon tai painat help näppäintä F1 esimerkiksi KEYS-ikkunassa saat KEYS-helpin. HELP ei korvaa manuaalia mutta sisältää silti runsaasti tietoa eri SAS-proseduureista. [katso kohta 3.6] Useimmat funktio- ja erikoisnäppäimet voidaan määritellä lähettämään joku SAS-ikkunointikomento. KEYS-ikkunan avulla voi näitä määrityksiä katsella ja muuttaa (Help Keys). [katso kohta 3.7] SAS-havaintoaineiston selaaminen ja muokkaaminen ruudulla omassa ikkunassaan. [katso kohta 4.4] 3.2 Program Editor-ikkuna Kuva 3.2: Program Editor-ikkuna Tässä ikkunassa tehdään varsinainen SAS-työskentely eli SAS-ohjelmien kirjoittaminen. Jo aikaisemmin kirjoitetun SAS-ohjelman voi myös lukea tiedostosta ikkunaan. Kun Program Editor-ikkuna on aktiivinen, voi SAS-pääikkunan alasvetovalikoista hiiren avulla valita esimerkiksi seuraavia komentoja: File Open Hae tiedosto editointi-ikkunaan. File Save as... Talleta editointi-ikkuna tiedostoon. SAS-komentotiedostot kannattaa tallettaa tarkentimella.sas. Edit Clear text Tyhjennä ikkuna.

3.3 LOG-ikkuna 15 Locals Submit Lähetä kirjoitetut komennot SAS:n suoritettavaksi. Locals Recall text Haetaan Submit-komennolla lähetetyt komennot uudestaan editointi-ikkunaan. Seuraava Recall-komento hakee sitä edeltäneet komennot jne. Ikkunassa toimivat normaalit Windows-editointinäppäimet: nuolinäppäimillä liikutaan ruudussa, Home vie rivin alkuun, Insert vaihtaa päällekirjoitustilan jne. Tekstilohkojen liimaamiseen ja leikkaamiseen käytetään Windows-leikepöytää: Edit-valikon Cut, Copy ja Paste. Tyypillinen SAS-työskentely muodostuu seuraavista osista: SAS-ohjelman kirjoittaminen Program Editor-ikkunaan tai aikaisemmin kirjoitetun ohjelman hakeminen File Open-komennon avulla. Ohjelman suorittaminen Locals Submit-komennon avulla. LOG-ikkunan tarkastaminen virheilmoitusten löytämiseksi. Ohjelman uudelleen hakeminen Locals Recall-komennolla Program Editor-ikkunaan ja virheiden korjaaminen. Uusi SAS-ajo. Tulosten tarkastelu OUTPUT-ikkunassa. Tulosten ja toimivan SAS-ohjelman talletus levylle. [katso kohta 3.9] Käyttäjän kirjoittaman SAS-ohjelman suorittamiseksi annettava Submit-komento tyhjentää Program Editor-ikkunan. Sen sisällön sai siis takaisin valinnalla Locals- Recall. Vaihtoehtoinen tapa on ennen komentojen lähettämistä maalata halutut SAS-lauseet hiirellä. Maalaaminen tapahtuu normaaliin Windows-tapaan viemällä kursori tekstilohkon alkuun, pitämällä vasenta hiiren näppäintä alhaalla ja viemällä kursori maalattavan lohkon loppuun. Maalattavan alueen värit muuttuvat tällöin normaaliväreille vastakkaisiksi. Jos jokin Program Editor-ikkunan osa on tällä tavoin merkitty lähettää Submit-komento vain merkityt SAS-lauseet hävittämättä ikkunan sisältöä. Näin voi SAS-ohjelmaa suorittaa vähitellen, vain muutaman lauseen kerrallaan ja samalla katsoa tekeekö ohjelma halutut toimenpiteet. Huomattavaa on kuitenkin se, että SAS aloittaa varsinaisen suorituksen vasta kun DATAtai proseduuriaskel päättyy, joko RUN-lauseeseen tai uuden askeleen alkamiseen. [katso kohta 3.13] 3.3 LOG-ikkuna Kun Program Editor-ikkunassa olevat komennot lähetetään Submit-komennolla suoritettavaksi tulostaa SAS nämä komennot rivi riviltä LOG-ikkunaan (kuva 3.3). Tänne tulostuvat tiedot ohjelman suorituksen onnistumisesta sekä mahdolliset virheilmoitukset. Lisäksi tulostuu luotujen SAS-havaintotiedostojen muuttujien ja havaintojen lukumäärät. LOG-ikkuna on syytä tarkastaa aina SAS-ajon jälkeen. Windows-käytössä onkin käytännöllistä järjestää ikkunat siten, että LOG-ikkuna on aina näkyvissä (jos vain ruudun koko sen sallii). LOG-ikkuna:

16 3 SAS Windows-ympäristössä Kuva 3.3: LOG-ikkuna 3.4 OUTPUT-ikkuna Sisältää valvontatulostuksen eli tiedot SAS-komentojen suorituksesta ja luoduista havaintotiedostoista. Sisältää virheilmoitukset silloin kun SAS-ajo ei onnistu. Virheilmoitukset voivat joskus olla vaikeasti tulkittavia. [katso kohta 3.13] Kuva 3.4: OUTPUT-ikkuna Jos suoritettava proseduuri sisältää aineiston analyysejä tai listauksia menevät tulokset OUTPUT-ikkunaan. Saman istunnon SAS-ajojen tulokset menevät OUTPUT-ikkunaan peräkkäin ja niitä voi selata PageUp- ja PageDown-näppäimillä. OUTPUT-ikkunan sisällön voi tyhjentää Edit-valikon Clear text-kohdasta ja sen voi tulostaa kirjoittimelle File-valikon Print-alakohdan avulla. Oletusarvoisesti SAS sivuttaa OUTPUT-ikkunan tulostuksen siten, että rivin ja sivun pituudet vastaavat OUTPUT-ikkunan kokoa heti SAS-ohjelman käynnistyksen

3.5 Asetuksia 17 3.5 Asetuksia jälkeen. Tämän seurauksena SAS helposti jakaa esimerkiksi taulukot useammalle sivulle, mikä tekee niiden lukemisen hankalaksi. SAS-optioilla PAGESIZE ja LI- NESIZE [katso kohta 3.8] saadaan muutettua käytettävän tulostusalan kokoa. Esimerkiksi rivi OPTIONS LINESIZE=80 PAGESIZE=64; SAS-komentojen alussa muuttaa tulostusleveyden ja -pituuden A4-tulostukseen sopivaksi. OUTPUT-ikkuna: Sisältää analyysien tulokset. Voidaan tallettaa ja tulostaa File-valikosta. SAS:n alkuperäisenä ideana on ollut pitää kaikkien eri käyttöjärjestelmien (Unix, VAX, Windows jne.) ikkunointikomennot mahdollisimman samanlaisina jolloin siirtyminen eri laitteistojen välillä olisi käyttäjälle helppoa. SAS-järjestelmän komentoja voikin antaa hiirivalikoiden lisäksi myös kirjoittamalla komennot erilliselle COMMAND-riville, joka on oletusarvoisesti näkyvissä SAS-pääikkunan yläosassa. Tämän yhteensopivuuden takia ei ole täysin voitu käyttää hyväksi kaikkia kulloisenkin ikkunointijärjestelmän (tässä tapauksessa siis Windowsin) tarjoamia mahdollisuuksia. Uusimmissa ohjelmaversioissa on tästä periaatteesta kuitenkin tingitty ja erilaisia Windows-piirteitä on lisätty. SAS-pääikkunan Options-valikon Preferences-alakohdan valintaikkunassa (kuva 3.5) voidaan asettaa erilaisia ohjelman ulkoasuun vaikuttavia tekijöitä. Yleensä oletusarvoiset määrittelyt ovat aloittelevalle käyttäjälle riittäviä. Kuva 3.5: Preferences-valintaikkuna Preferences-ikkunan Tools-valinnalla asetetaan käyttöön kuvan 3.6 mukaiset pikavalintanäppäimet, joiden avulla saadaan joitain usein toistuvia järjestelmä-