ØVELSESGANG 1B. I denne øvelse fortsætter vi med: Det grundlæggende i SAS-systemet. Operatorer og funktioner i SAS. Biblioteksfunktioner

Størrelse: px
Starte visningen fra side:

Download "ØVELSESGANG 1B. I denne øvelse fortsætter vi med: Det grundlæggende i SAS-systemet. Operatorer og funktioner i SAS. Biblioteksfunktioner"

Transkript

1 I denne øvelse fortsætter vi med: Det grundlæggende i SAS-systemet. Operatorer og funktioner i SAS ØVELSESGANG 1B I total.sas blev der foretaget en simpel aritmetisk beregning (division) på de variable i en observation. Som altid gøres dette ved hjælp af numeriske operatorer: [+, -, *, /, **] svarende til de fire regningsarter og potensopløftning. (Da der kun findes en enkelt numerisk datatype, skelnes der ikke mellem heltals- og realtals division). Sammenlignings-, logiske og tekst-operatorer i SAS: = eller EQ lig med ^ = eller NE ikke lig med > eller GT større end < eller LT mindre end >= eller GE større end eller lig med <= eller LE mindre end eller lig med & eller AND og! eller OR eller ^ eller NOT ikke!! Konkatenering af tekstvariable Biblioteksfunktioner Langt de fleste programmeringssprog har et bibliotek med numeriske standard-funktioner. SAS er udstyret med særlig mange af disse, hvoraf kan nævnes: ABS returnerer den absolutte værdi LOG beregner den naturlige logaritme MAX returnerer den største værdi LOG10 beregner titals-logaritmen MIN returnerer den mindste værdi SIN beregner sinus (argumentet i radianer) MOD beregner divisionsresten COS beregner cosinus (argumentet i radianer) EXP opløfter e ( ) til en potens Kontrolstrukturer i SAS Et centralt element i ethvert programmeringssprog, er kontrolstrukturer, der på basis af resultatet af mellemregninger bryder den ligefremme sekventielle programudførelse. Følgende SAS-program beregner overfladeareal og volumen af en kugle, her for de kugler, hvis radius anføres efter CARDS-sætningen: 1

2 1 * * 2 Dette program beregner rumfang og overfladeareal 3 for en kugle ud fra kuglens radius 4 * *; 5 DATA TEMP; 6 FILE PRINT; 7 INPUT RADIUS; 8 PI = ; /* Kan også skrives: PI = constant( PI ); */ 9 PUT " "; 10 IF RADIUS > 0 THEN DO; 11 AREAL = 4*PI*RADIUS*RADIUS; 12 VOLUMEN = (4/3)*PI*RADIUS**3; 13 PUT "For kuglen med radius " RADIUS "gælder:"; 14 PUT " Overfladeareal = " AREAL; 15 PUT " Rumfang = " VOLUMEN; 16 END; 17 ELSE 18 PUT "Non-positiv radius (" RADIUS ") ikke anvendt"; 19 DROP PI; CARDS; ; 28 RUN; Programmet består af et enkelt datatrin, der specificeres i linie 5. Der er intet proceduretrin. Udtrykket FILE PRINT i linie 6 sikrer, at uddata fra PUT-sætningerne skrives til printfilen. Hvis FILE PRINT udelades, sendes uddata fra PUT i stedet til log-filen. INPUT-sætningen (linie 7) specificerer, at der i inddatafilen findes en enkelt variabel pr. observation, nemlig RADIUS. Desuden beregnes AREAL og VOLUMEN, således at hver observation i det færdige datasæt består af ialt tre variable (RADIUS, AREAL, VOLUMEN). I virkeligheden bruges også PI (π) som hjælpevariabel, men DROP-sætningen i linie 19 medfører, at denne ikke indgår i det endelige datasæt. PUT-sætningerne (linie og 18) sørger for udskriften. Beregningerne gennemføres for hver enkelt observation i inddata. Bemærk kontrolstrukturen i linierne 10-18: Udtrykket RADIUS > 0 i linie 10 (der benytter sig af sammenligningsoperatoren >) er konceptuelt af typen boolean (sand, falsk), men denne type findes ikke i SAS, der til formålet i stedet benytter sig af typen numeric. 2

3 IF sætninger - syntaks IF betingelse THEN ordre; IF betingelse THEN ordre; ELSE ordre; IF betingelse THEN ordre; ELSE betingelse THEN ordre; ELSE ordre; hvor ordren kan være DELETE, DO, OUTPUT, STOP eller et assignment DO loops - syntaks DO indeksvar=specifikation[specifikation]; sætning(er); END; DO indeksvar=start TO end BY increment; sætning(er); END; DO indeksvar=start TO end WHILE betingelse; sætning(er); END; DO indeksvar=start TO end UNTIL betingelse; sætning(er); END; Nedenstående SAS-program DESCRIPT.SAS henter sine inddata fra en fil på K:-drevet. Programmet indeholder (ud over datatrinet) et enkelt proceduretrin, der består af sætningen PROC MEANS og den efterfølgende specifikation (linie 7-8) : 1 * Programmet DESCRIPT.SAS; 2 FILENAME INDATA 'K:\EDB-KURS\WEEK1\ABC_DATA.TXT'; 3 DATA TEMP; 4 INFILE INDATA MISSOVER; 5 INPUT GRUPPE $ VAERDI; 6 7 PROC MEANS; 8 VAR VAERDI; 9 10 RUN; Kommandoen i linje 2 er et assignment. Der etableres en logisk forbindelse mellem et filnavn (K:\EDB- KURS\WEEK1\ABC_DATA.TXT) og et internt filnavn (INDATA). Datasættet, der oprettes, får navnet TEMP (linje 3). Data indlæses fra filen INDATA (linje 4), der indeholder parvise værdier af tekstvariablen GRUPPE og den numeriske variabel VAERDI (tegnet $ i INPUT-sætningen markerer, at GRUPPE er en tekstvariabel). Programmets proceduretrin starter i linje 7, idet PROC MEANS beregner deskriptive statistiske parametre for den variabel, der er anført med VAR-specifikationen i linje 8. Var VAR-sætningen udeladt, ville PROC MEANS forsøge at lave beregningerne på alle numeriske variable i datasættet, hvilket her (hvor GRUPPE er en tekstvariabel) ville give det samme resultat. SAS 14:30 Wednesday, November 15, 2006 Page 1 Analysis Variable : VAERDI N Mean Std Dev Minimum Maximum

4 LISTING-output fra programmet DESCRIPT.SAS: I det datasæt, der anvendtes som testdata for DESCRIPT.SAS, bruges en kode (tekstvariablen GRUPPE) til underopdeling af datamaterialet. Nedenstående modificerede udgave af programmet foretager indlæsning af data fra tekstfilen K:\EDB-KURS\WEEK1\ABC_DATA.TXT og rapporterer for hver enkelt gruppe følgende værdier: Middelværdi, varians, spredning (standard deviation), antal observationer, samt mindste og største værdi for variablen VAERDI og afstanden mellem dem (range): 1 /* * 2 * DESCRIPT.SAS (modificeret): Deskriptiv statistik * 3 * på variablen VAERDI. * 4 * */ 5 FILENAME INDATA 'K:\EDB-KURS\WEEK1\ABC_DATA.TXT'; 6 DATA TEMP; 7 INFILE INDATA; 8 INPUT GRUPPE $ VAERDI; 9 10 PROC SORT; 11 BY GRUPPE; 12 PROC MEANS MEAN VAR STD N MIN MAX RANGE; 13 VAR VAERDI; 14 BY GRUPPE; RUN; Linie 1-4 er et kommentarfelt; her illustreres en måde, hvorpå kommentarer kan tydeliggøres i et SASprogram (sml. HALLO.SAS og TOTAL.SAS). Programmet indeholder nu to proceduretrin: Først foretages (i linje 10-11) en sortering af datasættet efter den variabel, der skal bruges til grupperingen (GRUPPE). Derefter (linje 12-14) gennemføres beregningerne for hver enkelt gruppe i materialet. Det gælder generelt, at en gruppevis opdelt beregning med en SAS procedure forudsætter, at datasættet på forhånd er sorteret efter samme kriterium, som skal anvendes ved gruppeopdelingen under beregningerne. Bemærk, at det er datasættet, der sorteres, ikke inddatafilen! Læg mærke til, at der efter PROC MEANS-sætningen nu er skrevet en række options, der specificerer netop de statistiske parametre, der ønskes beregnet. Såfremt disse udelades, rapporteres som før: Antal observationer, minimum, maksimum, middelværdi og standard deviation. Det er generelt muligt ved hjælp af options til SAS-procedurer at styre disse efter brugerens ønsker og behov. 4

5 SAS-datasæt og SAS-filer SAS-datasæt: En rektangulær datastruktur Ovenfor har vi flittigt benyttet os af udtrykket `et SAS datasæt' - men hvad er det egentligt? Et datasæt er den informationsmængde, som SAS-programmet skal arbejde med. SAS-datasæt er altid opbygget i en rektangulær form, således som det fremgår af eksemplet i figuren. En lignende dataorganisation kendes fx fra regnearksprogrammer. Dette datasæt indeholder oplysninger om vægt og højde for tre personer. Der findes tre variable i datasættet, nemlig NAVN, HOEJDE og VAEGT; variable svarer således til søjler i tabellen. Der skelnes mellem numeriske variable (numeric) og streng-variable (character). I eksemplet er den første variable af typen character, medens de to andre er numeric. Der findes i datasættet også tre observationer, svarende til rækkerne i tabellen. Den første observation i dette datasæt er således `Peter '. Med ordet værdi ( data value ) refererer vi til en enkelt værdi i tabellens matrix, fx er `Hans' og 175 værdier i datasættet. Variabel Peter Søren Hans Observation Et SAS-datasæt med med 3 observationer og 3 variable. Datasættet i figuren kan oprettes med følgende SAS-program: DATA PERSONER; INPUT NAVN$ HOEJDE VAEGT; CARDS; Peter Søren Hans ; RUN; En character-variabel specificeres i INPUT-sætningen ved at sætte tegnet $ efter dens navn. I alle andre tilfælde antages de indlæste variable af være af typen numeric. Hele datatrinet gennemløbes for hver enkelt observation (`the observation loop', sml. rutediagrammet i figuren). Du har ovenfor set eksempler på, at beregningsudtryk i datatrinet kan føre til oprettelse af variable, der ikke er specificeret i INPUT-sætningen. Typen af disse nye variable afledes af typen af de variable, der indgår i beregningerne, fx vil en beregning på to numeriske variable altid give en numerisk variabel som resultat. Det er i et SAS-program ikke nødvendigt (eller muligt) at erklære typen af de afledte variable. 5

6 START Flere observationer NEJ SAS afslutter datatrinnet og går videre til det næste datatrin eller proceduretrin JA Læs næste observation Udfør evt. programsætninger Tilføj observation til datasæt SAS-programmets datatrin gennemløbes en gang for hver observation. Man kommer tit ud for, at værdier i et datasæt mangler eller er principielt ukendte. De fleste programmeringssprog er dårlige til at håndtere denne situation. SAS har imidlertid en elegant løsning: Det er muligt at specificere en vilkårlig værdi i et SAS-datasæt som manglende ( missing value ), vel at mærke således, at alle SAS-procedurerne stadig foretager korrekte beregninger på datasættet. En manglende værdi markeres ofte (fx i en inddata-tekstfil) ved hjælp af tegnet punktum (.). Teknisk benytter man sig af det forhold, at ikke alle bit-kombinationer i den 64-bit struktur, der udgør dobbelt-præcisionstypen numeric er i stand til at rumme en numerisk værdi. Nogle af disse `umulige' bit-kombinationer benyttes af SAS til repræsentation af `missing values'. Temporære og permanente datasæt Datasætnavne i SAS er principielt toleddede, idet de to navneled skal adskilles af et punktum, fx MYSAS.DATA85 Man refererer til det første navneled som biblioteksnavnet og til det andet som medlemsnavnet, hvilket antyder muligheden for en hierarkisk opbygning af datastrukturer. Det komplette navn for det første datasæt i biblioteket MYSAS er MYSAS.DATA85. For at oprette dette som permanent datasæt, skal programmets datatrin indledes med sætningen DATA MYSAS.DATA85; 6

7 I alle de foregående programeksempler i denne vejledning har vi brugt etleddede datasætnavne, fx TEMP eller PERSONER.SAS tilføjer da selv biblioteksnavnet WORK, og datasættene WORK.TEMP etc. opfattes som temporære, dvs. de slettes umiddelbart efter afviklingen af SAS-programmet. Selve navnet TEMP gør altså ikke i sig selv datasættet temporært vi har bare valgt det som et passende sigende navn. Normalt er man naturligvis interesseret i at bevare datasættet efter kørslen, således at det fx kan bruges i efterfølgende SAS-jobs, dvs. man ønsker at oprette et permanent datasæt. Til dette formål specificeres som nævnt et toleddet datasætnavn (fx MYSAS.DATA85) i programmets DATA-sætning. Datasætnavnet (fx MYSAS.DATA85) er et internt SAS-navn. Det er nødvendigt at fortælle operativ-systemet, hvor på disken eller netværksdrevet det permanente datasæt skal anbringes, dvs. navnet på det pågældende bibliotek. Derimod skal man ikke angive filnavnet; dette bliver automatisk sat lig med medlemsnavnet, efterfulgt af filtype-betegnelsen SAS7BDAT. Man bruger kommandoen LIBNAME til at angive placeringen af biblioteket: LIBNAME SAS-biblioteksnavn 'Operativsystem-bibliotek'; Hvis vi forudsætter, at SAS-biblioteket i ovenstående eksempel skal anbringes i biblioteket (folderen) H:\DATA\MYSAS, ville følgende to linier føre til det ønskede resultat NB! Pas på: Vi taler her både om operativsystem- og SAS-biblioteker, men det er to forskellige ting: LIBNAME HELBRED 'H:\DATA\MYSAS'; DATA HELBRED.DATA85; Når data er anbragt i et SAS-datasæt, dvs. er konverteret til det særlige SAS datafil-format, er de enkelte værdier repræsenteret på en form, der gør dem let tilgængelige for SAS. Indlæsning til et SAS-datasæt Den første opgave i forbindelse med SAS-beregninger består normalt i at indlæse data til et SASdatasæt. Primære måleresultater eller observationer foreligger ofte som tekstfiler, og tit skriver man et lille SAS-program, hvis eneste formål er at konvertere fra tekstfil- til datasæt-format. De programmer, der efterfølgende står for den egentlige analyse, indlæser så data fra et eller flere (permanente) datasæt. SAS-programmer skal således kunne indlæse data både fra en tekstfil (ASCII-format) og fra et SAS-datasæt. Vi illustrerer de forskellige muligheder for indlæsning med nogle eksempler. De fleste af eksemplerne, der blot tjener som illustration af indlæsemåder, danner et temporært datasæt. De kan let ændres til at producere permanente datasæt ved anførelse af et dobbeltledet datasætnavn i DATA-sætningen: Indlæsning ved hjælp af CARDS, udskrift med PROC PRINT Vi har ovenfor set eksempler på, at tekstdata kan anbringes i selve kildetekst-filen efter CARDSsætningen. Programmet prog1.sas indlæser et talmateriale, der i efteråret 1985 er fremkommet ved en helbredsundersøgelse af en lille gruppe danskere. Materialet indeholder 37 observationer (det antal personer, der indgår i undersøgelsen), samt følgende variable. Da der indgår personnumre i undersøgelsen, skal det understreges, at disse ikke refererer til konkrete personer: 7

8 NAVN FOEDDAG PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE Personens navn, forkortet til intialer Fødselsdag på formen ddmmåå, dvs. svarende til første led af personnummeret De sidste fire cifre af personnummeret Personens højde i cm Personens vægt i tiendedele kg (dvs hg) Det systoliske blodtryk i mm Hg Det diastoliske blodtryk i mm Hg prog1.sas indbygger talmaterialet i et temporært SAS-datasæt og underkaster det en begyndende analyse. Her gengives kun en del af programmet, idet de fleste datalinier er udeladt af pladshensyn. Den fulde tekst med alle 37 observationer findes i filen K:\EDB- KURS\WEEK1\PROG1.SAS. * PROG1.SAS; DATA DATA85; INPUT NAVN$ 1-2 FOEDDAG 4-9 PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE 28-30; CARDS; GK ME JF OB OL flere datalinier ; I INPUT-sætningen specificeres de data, der skal indlæses, samt den form, på hvilken disse forefindes i inddatafilen. Indlæsningen sker her i fast format, dvs. at det tilkendegives, fra hvilke inddatakolonner, de enkelte variabelværdier skal læses. Fx skal PERSNR stå i kolonne Læg mærke til, at NAVN er en character-variabel (markeret ved det efterfølgende $), men alle øvrige variable har typen numeric. De konkrete inddata følger efter CARDS;. Al information mellem CARDS; og det næste semikolon ( ; ) opfattes som data, og ikke som en del af programmet. Sætningen CARDS; kommer derfor automatisk til at markere afslutningen på datatrinet. Læg mærke til de manglende værdier af SYSTOLE og DIASTOLE. Variablen VAEGT ønskes repræsenteret i datasættet med talværdier svarende til enheden kg, og med en nøjagtighed på 0.1 kg. For at lette indkodningen af data er decimal-punktummet udeladt, men til gengæld markeres dette i INPUT-sætningen (.1 efter variabelnavnet). I PROG1.SAS's proceduretrin kaldes en procedure ved navn PROC PRINT. Bemærk, at PROC PRINT er et kald af en procedure, ikke en definition. De fleste SAS-procedurer laver noget uddata i tekst-format, fx laver PRINT en pænt opstillet udskrift af alle data i datasættet: OBS NAVN FOEDDAG PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE 1 GK ME JF OB OL

9 De to manglende værdier er nu markeret med tegnet '.'. Ovenstående udgave af prog1.sas fører til en udskriftsbredde, der er hensigtsmæssig, hvis uddata skal læses med SAS `display manager' (som man kalder SAS-programmets brugergrænseflade). Hvis du er utilfreds med antal linier pr. side eller linielængden, kan du ændre formatet ved at indsætte en ekstra linie øverst i programmet (dvs. før DATA-sætningen). F.eks. vil OPTIONS LINESIZE=68 PAGESIZE=70; (kan forkortes til: OPTIONS LS=68 PS=70;) medføre en linielængle på 68 tegn og en sidehøjde på 70 linier. OPTIONS-sætningen er ikke et essentielt element i SAS-programmet, og den vil derfor ikke være inkluderet i nedenstående eksempler. Det vil være naturligt, at FOEDDAG og PERSNR udskrives med hh. 6 og 4 cifre, uanset det første ciffer i nogle tilfælde er 0. Dette kan opnås ved at skrive en ekstra sætning efter PROC PRINT, dvs.: FORMAT FOEDDAG Z6.0 PERSNR Z4.0; Alternativt kunne formatet knyttes til de enkelte variable i selve datasættet, og ikke blot til PROC PRINT. Dette kræver anvendelse af FORMAT-sætningen i programmets datatrin: DATA DATA85; INPUT NAVN$ 1-2 FOEDDAG 4-9 PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE 28-30; FORMAT FOEDDAG Z6.0 PERSNR Z4.0; CARDS; GK datalinier ; I begge tilfælde betyder formatet Zw.d, at den pågældende variable udskrives i en feltbredde på w cifre med nuller det mest betydende ciffer foran (Zero = nul), og med d decimaler. Hvis man ikke ønsker de indledende nuller, men gerne vil bestemme feltbredde og antal cifre efter decimalpunktummet, skrives i stedet w.d (width.no_of_decimals, f. eks. 10.2) Bemærk, at FORMAT-specifikationen ikke ændrer den måde, hvorpå de pågældende størrelser repræsenteres internt. Indlæsning ved hjælp af INFILE I ovenstående eksempel (prog1.sas) var kildetekst og inddata til programmet `blandet sammen' i den samme tekstfil. Det er normalt hensigtsmæssigt at have tekstdata til SASprogrammer liggende i en separat fil, adskilt fra selve programmet. Derved er det muligt at skrive et meget kort SAS-program, der ved hjælp af INFILE-kommandoen refererer til inddata-filen. Programmet bliver lettere at overskue, og det er nemmere at indføre programændringer. Dette 9

10 blev illustreret i forbindelse med programmet DESCRIPT.SAS. I fortsættelse af dette eksempel kan vi løse opgaven således: FILENAME RAADATA 'K:\EDB-KURS\WEEK1\DATA85.DAT'; DATA DATA85; INFILE RAADATA; INPUT NAVN $ 1-2 FOEDDAG 4-9 PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE 28-30; FORMAT FOEDDAG Z6.0 PERSNR Z4.0; Husk, at FILENAME-kommandoen knytter et eksternt filnavn til et internt. Efter således at have præsenteret den `principielt korrekte syntaks' i forbindelse med læsning fra en ekstern fil, skal det medgives, at vi i den foreliggende SAS-version kan spare en enkelt programlinie ved at skrive: DATA DATA85; INFILE 'K:\EDB-KURS\WEEK1\DATA85.DAT'; INPUT NAVN $ 1-2 FOEDDAG 4-9 PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE 28-30; FORMAT FOEDDAG Z6.0 PERSNR Z4.0; Indlæsning i frit format I de fleste tilfælde er det en fordel at foretage indlæsningen af tekstdata i frit format, således at man undgår at skulle specificere de kolonne-numre, hvori de enkelte værdier befinder sig i inddata-filen. Erfaringsmæssigt kommer man nemlig meget nemt til at tælle forkert. Forudsætningerne for indlæsning i frit format er: Hver enkelt værdi på en inddata-linie skal adskilles fra den næste ved mindst et blanktegn. Character-variable større end 8 tegn, skal erklæres med LENGTH-sætningen. Evt. manglende værdier (`missing values') markeres med et punktum, omgivet på begge sider af blanktegn (det sidste blanktegn kan udelades i forbindelse med den sidste variabel på linien). Numeriske værdier indeholder evt. nødvendige decimal-punktummer, ellers bruges INFORMAT til at specificere decimal-punktummets placering. INFORMAT, der gælder i forbindelse med læsning fra tekstfiler, er parallelt til det ovenfor beskrevne FORMAT, der anvendes ved skrivning til tekstfiler. INFORMAT er beskrevet i hjælpesystemet. FILENAME RAADATA 'K:\EDB-KURS\WEEK1\DATA85.DAT'; DATA DATA85; INFILE RAADATA; INPUT NAVN$ FOEDDAG PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE ; FORMAT FOEDDAG Z6.0 PERSNR Z4.0; SAS-programmet svarende til prog2.sas kan i forbindelse med indlæsning i frit format se således ud: 10

11 og et udsnit af den tilsvarende inddata-fil: GK ME JF OB OL DL MB GG EK EB LM NG BF Højreforskydningen af linierne 8-11 er medtaget for at tydeliggøre, at ved indlæsning i frit format er kolonneplaceringen af inddata ligegyldig. Oprettelse af og indlæsning fra et permanent datasæt I ovenstående eksempler (prog1.sas) har vi blot dannet et temporært datasæt ved navn DATA85. I praksis vil man ofte ønske datasættet gjort permanent, og derfor skal principielt anføres såvel et dobbeltleddet datasætnavn som en specifikation ved hjælp af LIBNAME. Ønsker vi det permanente datasæt DATA85.SAS7BDAT placeret i folderen H:\MYSAS, skrives i begyndelsen af data-trinet: LIBNAME MYSAS 'H:\MYSAS'; DATA MYSAS.DATA85; Når et datamateriale allerede er til stede som et permanent datasæt, skal der ikke foretages fornyet indlæsning ved hjælp af CARDS eller INFILE i forbindelse med beregninger. INPUTsætningen bliver også overflødig, idet variablernes navne og formater allerede indgår i det permanente datasæt. I stedet bruges en SET-sætning. Nedenstående datatrin opretter et temporært datasæt (som arbejdsområde) og bruger som inddata det allerede eksisterende SAS-datasæt MYSAS.DATA85: DATA TEMP; SET MYSAS.DATA85; Alternativt kan man, hvis man kun skal bruge et permanent datasæt til en enkelt procedure, helt udelade DATA-trinet og direkte fortælle proceduren, hvilket datasæt, den skal bruge. Efter procedurens navn skriver man 'DATA=' efterfulgt af navnet på datasættet. Hvis man fx vil lave en udskrift af MYSAS.DATA85 kan det således gøres på følgende to måder: 11

12 DATA TEMP; SET MYSAS.DATA85; eller PROC PRINT DATA=MYSAS.DATA85; Indlæsning af manglende værdier Som tidligere nævnt er SAS-procedurerne i stand til på fornuftig vis at tage højde for manglende værdier (`missing values') i et SAS-datasæt. Eksempler på manglende værdier findes i forbindelse med variablerne SYSTOLE og DIASTOLE i det ovenfor behandlede datasæt (DATA85). Når indlæsningen foregår i fast format er der ingen problemer med at få SAS til at forstå, hvilke værdier der mangler: Når der fx i prog1.sas ikke er indtastet værdier i kolonnerne findes for den pågældende observation en manglende værdi for variablen SYSTOLE. Såfremt indlæsningen foregår i frit format - og det er normalt at foretrække - skal manglende værdier markeres i inddata med et punktum omgivet af blanktegn, dvs... Hvis de manglende værdier forekommer i slutningen af inddatalinien kan man i stedet bruge MISSOVER som en tilføjelse til INFILE. Fx: INFILE RAADATA MISSOVER; Hvis indlæsningen så støder på et linieskift før alle variable er indlæst for den pågældende observation, vil de resterende variable få tildelt `missing value'. Nye variable i et SAS-datasæt Det er vigtigt at forstå den måde, hvorpå SAS behandler inddata i DATA-trinet: Hver enkelt observation indlæses for sig, og for hver af dem udføres de programsætninger, som måtte være specificeret i DATA-trinet. Et par eksempler vil illustrere dette: Det er som tidligere vist muligt i data-trinet at udføre en lang række operationer på inddata, fx beregninger af afledede variable. Det kunne således i datasættet MYSAS.DATA85 være hensigtsmæssigt at underkaste forholdet mellem personernes højde og vægt en nærmere analyse. Til det formål vælger vi at definere en ny variabel, HOVERV. Endvidere kunne det være praktisk at definere en variabel med oplysning om alderen for hver enkelt person på undersøgelsestidspunktet (1985): DATA MYSAS.DATA85; SET MYSAS.DATA85; HOVERV = HOEJDE/VAEGT; ALDER = 85 - MOD(FOEDDAG,100); 12

13 Ved beregning af alderen benyttes modulus-funktionen MOD, der returnerer divisionsresten ved en heltalsdivision; vi benytter os således af, at de to sidste cifre i FOEDDAG svarer til de sidste cifre i fødeåret. Sortering af data Det er undertiden af interesse at kunne sortere et datasæt efter bestemte kriterier, og en passende forudgående sortering er faktisk en forudsætning for visse SAS-procedurer. Sortering varetages som tidligere nævnt af SAS-proceduren PROC SORT. Vi kan f.eks. sortere det ovenfor omtalte datasæt efter alder og køn såldes: DATA MYSAS.DATA85; SET MYSAS.DATA85; IF MOD(PERSNR,2)=1 THEN KOEN='M'; ELSE KOEN='K'; PROC SORT; BY KOEN ALDER; BY KOEN; Bemærk den nye variable KOEN (køn), der findes ud fra sidste ciffer i personnummeret (ulige = mand, lige = kvinde). Printfilen (produceret af sætningen ) vil nu vise observationerne i sorteret form. Men også selve det permanente datasæt MYSAS.DATA85 er sorteret. Der er vist to udskrivninger med PROC PRINT. I den sidste med BY KOEN kommer der ekstra overskrift med, der opdeler personerne i de to køn. Identifikation af `skævere' i inddata Fejl kan let forekomme under indkodningen af data. Det er god praksis at indrette programmet således, at der er størst mulig chance for at identificere evt. fejlindtastede værdier, inden analysen af datasættet starter. Dette kan opnås på mange måder. Fx kan det på forhånd være kendt, at visse variabelværdier nødvendigvis må befinde sig inden for et bestemt interval. Ved hjælp af IFsætninger i SAS-programmets datatrin kan man identificere observationer uden for dette område, således at man kan indføre de nødvendige rettelser. Alternativt kan man få SAS-programmet til automatisk at slette (DELETE) observationer med værdier, der falder uden for et på forhånd givet interval. Medens DROP bortkaster en variabel fra et datasæt, fører DELETE til eliminering af en observation. Følgende kan tjene som eksempel: Vi ser først på kommandoen LIST, der indsat i programmets data-trin fører til en kontroludskrift af hver enkelt observation til log-filen ved indlæsning af data. Når du derimod har indlæst data, kan du ikke længere bruge LIST, men kan i stedet bruge PUT. Med datatrinnet PUT _ALL_; i nedenstående eksempel får du skrevet hver eneste observation ud af datasættet. Hver SAS-kørsel resulterer i en log, hvori du kan læse om programforløbet. Du vil se eksempler på log-filer nedenfor: DATA TEMP; SET MYSAS.DATA85; PUT _ALL_; 13

14 I forbindelse med datasættet DATA85 har vi tidligere beregnet den afledede variabel ALDER. I rådata til ovenstående programeksempler (filen K:\EDB-KURS\WEEK1\DATA85.DAT) findes muligvis nogle datafejl vedrørende fødeåret: Alle personer i undersøgelsen vides nemlig at være født i perioden , dvs. at de i 1985 må have været i alders-intervallet år. Vi kan identificere evt. skævere ved i data-trinet at indsætte sætningen: IF ALDER<31 OR ALDER>42 THEN LIST; /* Ved indlæsning af rådata */ IF ALDER<31 OR ALDER>42 THEN PUT _ALL_; /* Ved færdige datasæt */ De pågældende observationer vil så blive vist i log-filen. Herefter kan du selv slette eller rette dem manuelt i inddatafilen. De afvigende observationer kan alternativt udelades af datasættet ved i data-trinet at indsætte : IF ALDER<31 OR ALDER>42 THEN DELETE; Tabellering af datasæt, udskrift Ovenfor har du allerede set flere eksempler på anvendelse af proceduren PROC PRINT til udskrift af data. Generelt anvendes PROC PRINT til at lave rapporter over alle eller nogle af de variable i SASdatasæt. Skrives blot fås en pænt formatteret udskrift af hele datasættet, idet hver søjle i udskriften svarer til en variabel. Udskriften forsynes også med løbenummeret for hver enkelt observation, ligesom tabellen udstyres med passende overskrifter til identifikation af de enkelte variable. Det er muligt blot at udskrive nogle udvalgte variable, hvilket gøres ved at tilføje en VARspecifikation: VAR FOERSTE ANDEN FEMTE; hvor FOERSTE, ANDEN og FEMTE er navnene på de variable, der ønskes medtaget i tabellen. Der findes talrige andre variationsmuligheder. Det anbefales, at du på et tidligt tidspunkt gør dig fortrolig med den måde, hvorpå de enkelte SAS-procedurer er beskrevet i dokumentationen. PROC PRINT er et vigtigt, og forholdsvis enkelt eksempel at begynde med. Det er muligt på forskellige måder at styre PROC PRINT efter specielle formål. Nedenstående eksempel (del af et program) forsyner den udskrevne tabel med en overskrift bestående af to linier:... TITLE 'Helbredsundersøgelse 1985'; TITLE3 'Efteråret 1985';... 14

15 Et lidt mere kompliceret eksempel på anvendelse af PROC PRINT ses i dette program: 1 FILENAME RAADATA 'K:\EDB-KURS\WEEK1\DATA85.DAT'; 2 LIBNAME MYSAS 'H:\MYSAS'; 3 DATA MYSAS.DATA85; 4 INFILE RAADATA; 5 INPUT NAVN$ FOEDDAG PERSNR HOEJDE VAEGT SYSTOLE DIASTOLE; 6 ALDER = 85 - MOD(FOEDDAG,100); 7 IF MOD(PERSNR,2)=1 THEN KOEN='M'; 8 ELSE KOEN='K'; 9 PROC SORT; 10 BY KOEN; 11 PROC PRINT LABEL SPLIT='*'; 12 BY KOEN; 13 ID NAVN; 14 VAR ALDER HOEJDE VAEGT; 15 TITLE 'Helbredsundersøgelse'; 16 TITLE3 'Efteråret 1985'; 17 LABEL KOEN='Køn'; 18 LABEL NAVN='Initialer'; 19 LABEL ALDER='Alder*i 1985'; 20 LABEL VAEGT='Vægt*(kg)'; 21 LABEL HOEJDE='Højde*(cm)'; 22 FORMAT ALDER 3.0 VAEGT 4.1 HOEJDE 4.; 23 RUN; Til de enkelte linier i programmet kan knyttes følgende kommentarer: 1) Filnavnet K:\EDB-KURS\WEEK1\DATA85.DAT knyttes til det interne navn RAADATA. 2) Biblioteksnavnet MYSAS defineres som svarende til DOS-biblioteket H:\MYSAS. 3) Der dannes et permanent datasæt med det interne SAS-navn MYSAS.DATA85, hvilket svarer H:\MYSAS\DATA85.SAS7BDAT. 4) Indlæsning af rådata sker fra filen K:\EDB-KURS\WEEK1\DATA85.DAT'. 5) Indlæsning foregår i frit format. Der indlæses 7 variable, hvoraf den ene (NAVN) er en tekstvariabel. 6) Den afledte numeric-variable ALDER beregnes 7-8) Den afledte character-variable KOEN beregnes 9-10) Datasættet sorteres efter køn. 11) Option SPLIT definerer skilletegnet *, se linie ) Udskriften opdeles efter køn, dvs. på samme måde som ved sorteringen. 13) Hver observation identificeres ved variablen NAVN i stedet for observationens løbenummer (der normalt ellers ville blive brugt af SAS). 14) Desuden udskrives for hver observation alder, højde og vægt. 15

16 15-16) Hver uddata-side forsynes med en overskrift, 17-21) og kolonnerne for navn, køn, alder, højde og vægt gives ikke-standard kolonneoverskrifter (dvs. forskellig fra variabel-navnet), idet der skiftes linie i overskriften ved hjælp af tegnet * (se linie 11). 22) Der bruges et selvvalgt tal-format ved udskriften. 23) Sætningen RUN; (nødvendig ved interaktiv programafvikling) markerer, at proceduretrinet er slut. Programmet producerer følgende printfil (vist i uddrag): Helbredsundersøgelse Efteråret Køn=K Alder Højde Vægt Initialer i 1985 (cm) (kg) ME OB flere linier GE Køn=M Alder Højde Vægt Initialer i 1985 (cm) (kg) GK JF flere linier MA

17 SAS-filer Inddata (tekstfil) SAS listing Print (tekst) SAS program (tekstfil) SAS system SAS log (tekst) SAS datasæt SAS datasæt De vigtigste SAS-filer. I ovenstående gennemgang har du stiftet bekendtskab med forskellige slags filer: Kildetekstfiler med SAS-programmer, tekstfiler med inddata til SAS, printfiler med uddata fra SASprogrammer, samt datasæt-filer (permanente datasæt). Vi mangler stadig at omtale en meget vigtig fil, der dannes i forbindelse med hver eneste SAS-kørsel: Log-filen (SASLOG). Log-filen er en tekstfil, der indeholder en række oplysninger om SAS-kørslen, herunder også evt. fejlmeddelelser. Hvis noget er gået galt undervejs, er log-filen det rigtige sted at søge information. Den indeholder også en kopi af kildeteksten (med linienumre) og er derfor nyttig til dokumentationsformål. SAS-systemet skriver til log-filen en række meddelelser, der efter deres karakter klassificeres som NOTE, WARNING eller ERROR. Nedenfor følger et eksempel på en log-fil: NOTE: Copyright(c) SAS Institute Inc., Cary, NC.., U.S.A. NOTE: SAS (r) Proprietary Software Release 9.12 Licensed to KOEBENHAVNS UNIVERSITET, Site DATA MYSAS.DATA85; 2 SET MYSAS.DATA85; 3 IF MOD(PERSNR,2)=1 THEN KOEN='M'; 4 ELSE KOEN='K'; 5 PROC SORT; NOTE: The data set MYSAS.DATA85 has 37 observations and 8 variables. NOTE: The DATA statement used 7.00 seconds. 6 BY ALDER KOEN; ERROR: Variable ALDER not found. 7 NOTE: The SAS System stopped processing this step because of errors. NOTE: The PROCEDURE SORT used 3.00 seconds. Nogle vigtige SAS-procedurer Du kommer i denne øvelse til at bruge fire procedurer fra BASE SAS: PROC SORT, PROC MEANS, PROC PRINT og PROC CONTENTS. De er alle grundigt dokumenterede i SAS 17

18 Procedures Guide, hvortil du henvises for mere detaljeret information. I SAS-systemets on-line hjælpesystem, kan du finde frem til noget, der svarer til denne. PROC SORT anvendes til sortering af et datasæt. Som sorteringsnøgle skal anvendes en eller flere af datasættets variable, og disse kan være numeric eller character. Sorteringsvariable specificeres efter ordet BY (se eksemplerne nedenfor). Sortering kan foretages i enten stigende (ascending) eller faldende (descending) orden; hvis ikke `descending' specificeres som option, foretages altid en `ascending sort'. I forbindelse med character-variable anvendes ordinaliteten i ASCII-tabellen som sorteringsbasis (`collating sequence'). Eksempler på anvendes af PROC SORT: PROC SORT; BY KOEN; PROC SORT; BY KOEN ALDER; PROC SORT; BY KOEN DESCENDING ALDER; I det sidste eksempel sorteres først efter KOEN i stigende orden, dernæst efter ALDER i faldende orden. PROC MEANS anvendes til univariat resumerende statistik. Der kan foretages beregninger på et helt datasæt, eller på undergrupper (`subsets') af et datasæt. I sidste tilfælde skal der specificeres en grupperings-variabel (`BY-variabel'), og datasættet skal på forhånd være sorteret efter denne variabel, fx ved hjælp af PROC SORT. I en simpliceret udgave ser syntaksen til kaldet af PROC MEANS således ud: PROC MEANS options; VAR variables; BY variables; De vigtigste options til PROC MEANS er de, der angiver, hvilke statistiske parametre, der skal beregnes. Her skal især nævnes følgende: N (antal `non-missing' observationer), NMISS (antal `missing' observationer), MEAN (middelværdi), STD (spredning, standard deviation), MIN (minimum), MAX (maksimum), RANGE, SUM, VAR (varians), CV (varianskoefficient), STDERR (middeltallets middelfejl, standard error of the mean), og T (Student t for hypotesen, at populations-middelværdien er 0). Hvis ingen options angives, beregnes som standard N, MIN, MAX, MEAN og STD. Efter VAR kan anføres en liste over de variable, der skal gøres til genstand for beregning. Udelades VAR-sætningen, foretages beregningerne for alle numeriske variable i datasættet. Efter BY kan anføres den eller de variable, der skal anvendes ved gruppering af materialet. 18

19 Nogle eksempler på anvendelse af PROC MEANS: PROC MEANS; PROC MEANS MIN MAX RANGE MEAN STD VAR CV T; PROC MEANS MEAN STD N; VAR ALDER HOEJDE; PROC SORT; BY KOEN; PROC MEANS; VAR ALDER HOEJDE; BY KOEN; PROC PRINT udskriver pæne tabeller til printfilen med oplysning om værdierne af variablene i et SAS-datasæt. Ved hjælp af VAR-sætningen kan en eller flere variable udvælges. Det er muligt at gruppere udskriften på grundlag af `BY-variable', men datasættet skal så på forhånd være sorteret efter de samme variable. Som for de andre procedurer fører det for vidt at beskrive PRINT i detaljer, men nogle simple eksempler nævnes nedenfor: VAR NAVN FOEDDAG PERSNR HOEJDE VAEGT VOVERH; PROC SORT; BY KOEN DESCENDING; VAR NAVN HOEJDE ALDER; BY KOEN; PROC CONTENTS giver oplysninger om SAS biblioteker og SAS datasæt. Den rapporterer ikke om indholdet af de pågældende filer, men derimod om deres opbygning, fx antallet og typen af variable, antal observationer etc. I sin simpleste form kaldes proceduren således: PROC CONTENTS; hvorved der produceres oplysninger om det sidst dannede datasæt. Et vilkårligt datasæt kan udvælges ved hjælp af DATA=-option i kaldet, fx: PROC CONTENTS DATA=MYSAS.DATA85; 19

20 Der er yderligere et par procedurer, som du træffer på under løsning af opgaverne, men som vi først fortæller mere om i næste øvelse. Det drejer sig om PROC REG og PROC GPLOT. Førstnævnte hører til SAS/STAT-modulet og bruges til regressionsanalyse med lineære modeller. Sidstnævnte hører til SAS/GRAPH og anvendes til mange forskellige former for XYplots. PROC GPLOT kan skrive til en grafisk enhed, fx grafikskærm eller plotter. Følgende kommandoer er specielle for program editor-vinduet: Program editor kommandoer RECALL Genkald tidligere kørsler af SAS-programmet SUBMIT Kør det aktuelle program INCLUDE 'fil.ext' Indlæs filen fil.ext Medens `display manager' er aktiv, kan du få oplysning om den aktuelle betydning af funktionstasterne ved kommandoen KEYS. Denne information er også tilgængelig via SAS help. 20

21 Øvelse 1b 1. Beskrivende statistik, jvf. program-eksemplet descript.sas (s. 3): Lav et SAS-program, der indlæser data fra tekstfilen K:\EDB-KURS\WEEK1\ ABC_DATA.TXT til et temporært datasæt og beregner middelværdi, varians, spredning, minimum og maksimum, samt variationskoefficient og antal `non-missing' observationer. Beregningerne skal i det samme program foretages dels for hele datamaterialet, dels for materialet opdelt i grupper efter den gruppekode, der findes forrest på hver linie (observation) i inddata-filen. Husk, at der gerne må være flere proceduretrin i det samme program. Eksekver programmet. Undersøg i loggen, om dit program er syntaktisk korrekt. Hvis ikke, så find fejlen(e) (markeret som ERROR) og prøv igen, indtil kildeteksten er korrekt. Når programmet kører fejlfrit, så kig på resultatet i OUTPUT-vinduet. Gem det eventuelt som fil. Er de beregnede størrelser for datasættet betragtet under et i overensstemmelse med dem, de andre har fået? (jvf. resultatudskriften fra DESCRIPT.SAS i denne vejledning)? Hvis ikke, så lokaliser problemet ved at kigge grundigere på loggen. Når du har identificeret et evt. problem, så kopier filen K:\EDB-KURS\WEEK1\ABC_DATA.TXT til dit H:-drev og foretag de nødvendige ændringer i den; alle observationer skal naturligvis bevares intakt. Brug herefter den rettede fil som inddata til dit SAS-program. Du skal være i stand til at reproducere beregningsresultaterne nøjagtigt. Hvad forstås ved `missing values'? Lav om på dit program, således at der dannes et permanent datasæt. Hvor placerer SAS den pågældende fil, og hvordan fastlægges dens navn? Hvad er fordelen ved at arbejde med permanente datasæt i forbindelse med gentagne eller successive beregninger på samme talmateriale, fremfor i hver beregningsrunde at skulle indlæse de samme data fra en tekstfil? Spørgsmålene under dette punkt drejer sig om det permanente datasæt, du netop har dannet. De kan besvares ud fra SAS-programmet, eller ved at anvende PROC CONTENTS på datasættet. Hvor mange variable indeholder det permanente datasæt, og hvad er deres typer? Hvor mange observationer findes der? Hvor mange bytes optager dataarealet i filen (antal observationer antal variable længden (i bytes) af hver variabel)? Hvordan passer dette med datasæt-filens faktiske størrelse? 2. Øvelser med et datamateriale, der omhandler helbredsoplysninger for en gruppe personer: Kopier filen prog1.sas fra K:\EDB-KURS\WEEK1 til H:\MYSAS. Find ud af, hvad programmet gør. Kør det, og kontroller, at det virker korrekt. Lav et SAS-program (prog2.sas), der skal behandle de samme data som ovenfor og med samme formål, men denne gang med data indlæst i frit format. Det dannede datasæt skal (ligesom ovenfor) være temporært. Inddata findes i tekstfilen K:\EDB- KURS\WEEK1\DATA85.DAT. Alle 37 observationer skal medtages, og alle variable skal repræsenteres korrekt. Fx skal personernes vægt være angivet i kg og i udskriften præsenteret med et ciffer efter decimal-punktum. Det er nemmest at opnå dette gennem et beregningsudtryk, kombineret med en passende brug af FORMATsætningen i SAS-programmet, men samme resultat kan naturligvis opnås ved editering i inddatafilen. Husk at tage hensyn til, at blodtryksmålinger (SYSTOLE og DIASTOLE) mangler for nogle personer. Dit program skal til sidst med PROC PRINT lave en udskrift til printfilen (LISTING), således at du kan kontrollere resultatet. 21

22 Udvid prog2.sas, således at der udover de primære variable (de samme som i prog1.sas) oprettes følgende afledede variable: Personernes køn (variablen KOEN). Personernes alder i 1985 (ALDER). Forholdet mellem højde og vægt (HOVERV). Differensen mellem det systoliske og diastoliske blodtryk (SYSDIA). Indret programmet, så der udskrives en tabel med oplysning om navn (initialer), køn, alder, højde og vægt, samt forholdet højde/vægt og blodtryk-ratio. Udskriften skal sorteres efter personernes køn. Gem en kopi af programmet under et andet navn (hvorfor?), og udvid så dette, således at der oprettes et permanent SAS-datasæt (DATA85.SAS7BDAT) med samme oplysninger som ovenfor. Endvidere skal programmet finde evt. observationer, hvor personens alder på undersøgelsestidspunktet er >42 år og fjerne de pågældende observationer fra datasættet. Dette datasæt skal du gemme, da vi skal bruge det under næste øvelse. Resumerende statistik - nok en gang: Udform et nyt program med PROC MEANS, således at der på grundlag af ovennævnte inddata beregnes middelværdi, standard deviation og variationsbredde (range) for variablerne højde, alder og vægt, samt systolisk og diastolisk blodtryk, dels for hele talmaterialet, dels for materialet ordnet efter køn. Hent data fra DATA85.SAS7BDAT ved hjælp af SET-kommandoen. 3. Kald SAS og undersøg hjælpesystemet ved at aktivere HELP-menuen. Brug hjælpesystemet til at skaffe dig oplysning om en eller flere af procedurerne MEANS, PRINT, CONTENTS, generelt om `SAS statements' el. lign. Formålet er ikke at lære den omfattende information udenad, men at finde ud af, hvordan du orienterer dig i hjælpesystemet. Husk, at hjælpesystemet er opbygget i adskillige niveauer. 22

ØVELSESGANG 1A EDB PROGRAMMER SAS SOM PROGRAMMERINGSSPROG

ØVELSESGANG 1A EDB PROGRAMMER SAS SOM PROGRAMMERINGSSPROG ØVELSESGANG 1A EDB PROGRAMMER Et EDB program er en serie instruktioner, skrevet i et sprog som maskinen forstår. Helt generelt består et program af et hoved, en header, og en body der indeholder input/output

Læs mere

ØVELSE 2B. Formål Det primære formål med denne øvelse er at prøve nogle vigtige procedurer til statistisk og grafisk analyse.

ØVELSE 2B. Formål Det primære formål med denne øvelse er at prøve nogle vigtige procedurer til statistisk og grafisk analyse. ØVELSE 2B I denne øvelse gennemgår vi: Udskrivning ved hjælp af PUT. Procedurerne FREQ, UNIVARIATE og CORR. Overførsel af procedure-uddata til et datasæt. Fremstilling af histogrammer og XY-plots. Formål

Læs mere

ØVELSE 2A. Ex_2a. Data-trin faciliteter: DATA sætningen INPUT sætningen CARDS sætningen INFILE sætningen LIST sætningen

ØVELSE 2A. Ex_2a. Data-trin faciliteter: DATA sætningen INPUT sætningen CARDS sætningen INFILE sætningen LIST sætningen ØVELSE 2A I denne øvelse gennemgår vi: Anvendelse af PROC CONTENTS til klarlægning af et SAS-datasæts struktur. Hvad forstås ved SAS informat og format? SAS-variablers længde. LABEL-sætningen. Manipulation

Læs mere

PUT og INPUT funktionerne

PUT og INPUT funktionerne PUT og INPUT funktionerne Af: Peter Kellberg Danmarks Statistik Sejrøgade 11 DK-2100 København Ø pke@dst.dk PUT og INPUT-funktionerne Denne artikel er foranlediget af en henvendelse til vores interne SAS

Læs mere

Kort intro til SAS. Efterår 2015. Janne Petersen Judith L Jacobsen Lene Theil Skovgaard

Kort intro til SAS. Efterår 2015. Janne Petersen Judith L Jacobsen Lene Theil Skovgaard Kort intro til SAS Efterår 2015 Janne Petersen Judith L Jacobsen Lene Theil Skovgaard 1 Hvorfor SAS Kan alt Alle ph.d. studerende har gratis adgang Fra universitetet eller hospitalerne Kode --- hjælp fra

Læs mere

Hvorfor SAS Kort intro til SAS

Hvorfor SAS Kort intro til SAS Hvorfor SAS Kort intro til SAS Efterår 2015 Janne Petersen Judith L Jacobsen Lene Theil Skovgaard Kan alt Alle ph.d. studerende har gratis adgang Fra universitetet eller hospitalerne Kode --- hjælp fra

Læs mere

SAS formater i Danmarks Statistik

SAS formater i Danmarks Statistik Danmarks Statistik, Forskningsservice og Kundecenter 9. januar 2012 SAS formater i Danmarks Statistik 1. Indledning... 1 2. Hvor findes formater og øvrige datafiler?... 2 3. Hvordan bruges formater i SAS-programmet?...

Læs mere

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

Læs mere

INTRODUKTION TIL SAS

INTRODUKTION TIL SAS INTRODUKTION TIL SAS MOGENS RING PETERSEN August 2010 INDHOLDSFORTEGNELSE SAS SOM PROGRAMMERINGSSPROG... 4 Programstrukturen i SAS... 4 SAS's hjælpesystem... 5 Eksempler på SAS-programmer... 5 Datatyper...

Læs mere

SAS systemet SAS. SAS vinduer. 2012 Janne Petersen

SAS systemet SAS. SAS vinduer. 2012 Janne Petersen SAS systemet SAS 2012 Janne Petersen February 7, 2012 Styrken i SAS er dets evne til at håndtere store datasæt. Det er hurtigt og har mange statistiske og ikke-statistiske muligheder. Kan "alt", så det

Læs mere

Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik

Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik Peter Kellberg Rundt om Danmarks Statistiks makroer Design, Standardisering, Teknik SAS Forum 2009 Ét makrobibliotek ca 50 makroer, vi selv har lavet mange andre fx CLAN Autocall makroer en makro er et

Læs mere

Introduktion til SAS. Faculty of Health Sciences

Introduktion til SAS. Faculty of Health Sciences Faculty of Health Sciences Introduktion til SAS Susanne Rosthøj Biostatistisk Afdeling Institut for Folkesundhedsvidenskab Københavns Universitet sr@biostat.ku.dk Eksempel: Blodtryk og fedme OBESE: vægt/idealvægt,

Læs mere

Introduktion til SPSS

Introduktion til SPSS Introduktion til SPSS Øvelserne på dette statistikkursus skal gennemføres ved hjælp af det såkaldte SPSS program. Det er erfaringsmæssigt sådan, at man i forbindelse af øvelserne på statistikkurser bruger

Læs mere

Kommentarer til øvelser i basalkursus, 2. uge

Kommentarer til øvelser i basalkursus, 2. uge Kommentarer til øvelser i basalkursus, 2. uge Opgave 2. Vi betragter målinger af hjertevægt (i g) og total kropsvægt (målt i kg) for 10 normale mænd og 11 mænd med hjertesvigt. Målingerne er taget ved

Læs mere

PROC TRANSPOSE. SAS-tabellen - hensigtsmæssig lagring af data. Copyright 2011 SAS Institute Inc. All rights reserved.

PROC TRANSPOSE. SAS-tabellen - hensigtsmæssig lagring af data. Copyright 2011 SAS Institute Inc. All rights reserved. PROC TRANSPOSE SAS-tabellen - hensigtsmæssig lagring af data Copyright 2011 SAS Institute Inc. All rights reserved. Transponerede tabeller Brede eller smalle? Hvad: Brede tabeller har mange kolonner med

Læs mere

β = SDD xt SSD t σ 2 s 2 02 = SSD 02 f 02 i=1

β = SDD xt SSD t σ 2 s 2 02 = SSD 02 f 02 i=1 Lineær regression Lad x 1,..., x n være udfald af stokastiske variable X 1,..., X n og betragt modellen M 2 : X i N(α + βt i, σ 2 ) hvor t i, i = 1,..., n, er kendte tal. Konkret analyseres (en del af)

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Det kunne godt se ud til at ikke-rygere er ældre. Spredningen ser ud til at være nogenlunde ens i de to grupper.

Det kunne godt se ud til at ikke-rygere er ældre. Spredningen ser ud til at være nogenlunde ens i de to grupper. 1. Indlæs data. * HUSK at angive din egen placering af filen; data framing; infile '/home/sro00/mph2016/framing.txt' firstobs=2; input id sex age frw sbp sbp10 dbp chol cig chd yrschd death yrsdth cause;

Læs mere

Statistik FSV 4. semester 2014 Øvelser Uge 2: 11. februar

Statistik FSV 4. semester 2014 Øvelser Uge 2: 11. februar Århus 6. februar 2014 Morten Frydenberg Statistik FSV 4. semester 2014 Øvelser Uge 2: 11. februar Til disse øvelser har I brug for fishoil1.dta, der indeholder data fra det fiskeolie forsøg vi så på ved

Læs mere

Sammenlign og byt. Et eksempel på dokumentering af et program

Sammenlign og byt. Et eksempel på dokumentering af et program Sammenlign og byt Et eksempel på dokumentering af et program Sammenlign og byt Jeg har valgt, som et eksempel, at dokumentere et meget enkelt program som indlæser to tal, sammenligner dem og udskriver

Læs mere

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje. Maple Dette kapitel giver en kort introduktion til hvordan Maple 12 kan benyttes til at løse mange af de opgaver, som man bliver mødt med i matematiktimerne på HHX. Skærmbilledet Vi starter med at se lidt

Læs mere

En Introduktion til SAS

En Introduktion til SAS En Introduktion til SAS Inge Henningsen Afdeling for Statistik og Operationsanalyse Københavns Universitet Februar 2005 6. udgave i FORORD til 1. udgave Denne introduktion til SAS til brug ved kurset Statistik

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

Klargøring af data til aflevering til DDA. Instruks

Klargøring af data til aflevering til DDA. Instruks v Klargøring af data til aflevering til DDA Instruks Denne instruks gennemgår datadokumentationsformater m.v. for datasystemfiler, som skal afleveres til Dansk Data Arkiv efter indgået aftale om ekstern

Læs mere

Appelsiner, bananer og citroner

Appelsiner, bananer og citroner Appelsiner, bananer og citroner Af: Peter Kellberg Danmarks Statistik Sejrøgade DK-00 København Ø pke@dstdk SAS og øvrige SAS Institute Inc-produkter samt navngivne serviceydelser er registrerede varemærker

Læs mere

Lagervisning. Dina Friis, og Niels Boldt,

Lagervisning. Dina Friis, og Niels Boldt, Lagervisning Dina Friis, dina@diku.dk og Niels Boldt, boldt@diku.dk 6. april 2001 Kapitel 1 Sammenfatning Dette dokument er et eksempel på en delvis besvarelse af G-opgaven stillet på Datalogi 0 2000-2001.

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Statistik i GeoGebra

Statistik i GeoGebra Statistik i GeoGebra Peter Harremoës 13. maj 2015 Jeg vil her beskrive hvordan man kan lave forskellige statistiske analyser ved hjælp af GeoGebra 4.2.60.0. De statistiske analyser svarer til pensum Matematik

Læs mere

Kort introduktion til SAS

Kort introduktion til SAS Kort introduktion til SAS Janne Petersen Efterår 2013 SAS systemet Styrken i SAS er dets evne til at håndtere store datasæt. Det er hurtigt og har mange statistiske og ikke-statistiske muligheder. Kan

Læs mere

INTRODUKTION TIL dele af SAS

INTRODUKTION TIL dele af SAS INTRODUKTION TIL dele af SAS Der er flere forskellige angrebsvinkler ved statistiske analyser i SAS. Vi skal her kun beskæftige os med to af disse, nemlig Direkte programmering. Brug af SAS ANALYST Hvilken

Læs mere

Statistiske Modeller 1: Kontingenstabeller i SAS

Statistiske Modeller 1: Kontingenstabeller i SAS Statistiske Modeller 1: Kontingenstabeller i SAS Jens Ledet Jensen October 31, 2005 1 Indledning Som vist i Notat 1 afsnit 13 er 2 log Q for et test i en multinomialmodel ækvivalent med et test i en poissonmodel.

Læs mere

En Introduktion til SAS. Kapitel 5.

En Introduktion til SAS. Kapitel 5. En Introduktion til SAS. Kapitel 5. Inge Henningsen Afdeling for Statistik og Operationsanalyse Københavns Universitet Marts 2005 6. udgave Kapitel 5 T-test og PROC UNIVARIATE 5.1 Indledning Dette kapitel

Læs mere

SAS systemet. Kort introduktion til SAS. SAS vinduer. Janne Petersen. Efterår 2013

SAS systemet. Kort introduktion til SAS. SAS vinduer. Janne Petersen. Efterår 2013 SAS systemet Kort introduktion til SAS Janne Petersen Efterår 2013 Styrken i SAS er dets evne til at håndtere store datasæt. Det er hurtigt og har mange statistiske og ikke-statistiske muligheder. Kan

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

Lineær og logistisk regression

Lineær og logistisk regression Faculty of Health Sciences Lineær og logistisk regression Susanne Rosthøj Biostatistisk Afdeling Institut for Folkesundhedsvidenskab Københavns Universitet sr@biostat.ku.dk Dagens program Lineær regression

Læs mere

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Sproget Limba. Til brug i G1 og K1. Dat1E 2003 Sproget Limba Til brug i G1 og K1 Dat1E 2003 Abstract Limba er et simpelt imperativt sprog med hoballokerede tupler. Dette dokument beskriver uformelt Limbas syntaks og semantik samt en fortolker for Limba,

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Programmering i C. Lektion september 2009

Programmering i C. Lektion september 2009 Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form

Læs mere

MPH specialmodul i epidemiologi og biostatistik. SAS. Introduktion til SAS. Eksempel: Blodtryk og fedme

MPH specialmodul i epidemiologi og biostatistik. SAS. Introduktion til SAS. Eksempel: Blodtryk og fedme MPH specialmodul i epidemiologi og biostatistik. SAS Introduktion til SAS. Display manager (programmering) Vinduer: program editor (med syntaks-check) log output reproducerbart (program teksten kan gemmes

Læs mere

Indledning. På de følgende sider vises, primært i tegneserieform, lidt om mulighederne i PC-AXIS for Windows.

Indledning. På de følgende sider vises, primært i tegneserieform, lidt om mulighederne i PC-AXIS for Windows. Indledning PC-AXIS for Windows er et talbehandlingsprogram, der kan håndtere store mængder statistisk materiale. PC-AXIS giver mulighed for at arbejde videre med det statistiske materiale i egne programmer

Læs mere

Easy Guide i GallupPC

Easy Guide i GallupPC Easy Guide i GallupPC Version. 6.00.00 Gallup A/S Masnedøgade 22-26 DK 2100 København Ø Telefon 39 27 27 27 Fax 39 27 50 80 Indhold SÅDAN KOMMER DU I GANG MED AT ANVENDE GALLUPPC... 2 TILFØJELSE AF UNDERSØGELSER

Læs mere

Peter Kellberg. Det vidste du ikke om et EG projekt!

Peter Kellberg. Det vidste du ikke om et EG projekt! Peter Kellberg Det vidste du ikke om et EG projekt! SAS Forum 2010 Spørgsmål? Kan tanker om sex få én til at nyse? Ja! Journal of the Royal Society of Medicine Det vigtigste først Er sex overhovedet relevant

Læs mere

ØVELSE 3A. I SAS kan man både bruge {}, [] og () som paranteser til index.

ØVELSE 3A. I SAS kan man både bruge {}, [] og () som paranteser til index. ØVELSE 3A I denne øvelse gennemgår vi: Flere funktioner - udvalgte tilfældigtals generatorer i SAS Eksempler på anvendelse af SAS til statistisk analyse Formål Du får brug for de træk ved SAS-systemet,

Læs mere

Variansanalyse i SAS. Institut for Matematiske Fag December 2007

Variansanalyse i SAS. Institut for Matematiske Fag December 2007 Københavns Universitet Statistik for Biokemikere Det naturvidenskabelige fakultet Institut for Matematiske Fag December 2007 Variansanalyse i SAS 2 Tosidet variansanalyse Residualplot Tosidet variansanalyse

Læs mere

En vej gennem casestudiet: Tabelvejen v. 2.0

En vej gennem casestudiet: Tabelvejen v. 2.0 En vej gennem casestudiet: Tabelvejen v. 2.0 Af Knud Ramian Denne tekst er en udvidet vejledning i, hvordan man gennemfører en simpel indholdsanalyse som beskrevet i bogen kapitel 11. Teksten stammer fra

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

Datatransport... 2. Import & Eksport af data... 2. Generelt... 2. Import/eksport... 4. Felter i Import og Eksport... 5

Datatransport... 2. Import & Eksport af data... 2. Generelt... 2. Import/eksport... 4. Felter i Import og Eksport... 5 Indhold Datatransport... 2 Import & Eksport af data... 2 Generelt... 2 Import/eksport.... 4 Felter i Import og Eksport... 5 Trykknapper til Import og Eksport... 7 1 Alle... 7 2 Slet... 7 3 Editor... 7

Læs mere

ISCC. IMM Statistical Consulting Center. Brugervejledning til beregningsmodul til robust estimation af nugget effect. Technical University of Denmark

ISCC. IMM Statistical Consulting Center. Brugervejledning til beregningsmodul til robust estimation af nugget effect. Technical University of Denmark IMM Statistical Consulting Center Technical University of Denmark ISCC Brugervejledning til beregningsmodul til robust estimation af nugget effect Endelig udgave til Eurofins af Christian Dehlendorff 15.

Læs mere

Matematik opgave Projekt afkodning Zehra, Pernille og Remuss

Matematik opgave Projekt afkodning Zehra, Pernille og Remuss Matematik opgave Projekt afkodning Zehra, Pernille og Remuss Opgave A Sæt de overstående symboler ind i en matematisk sammenhæng der gør dem forståelige. Det kan være som en sætning eller med tal og bogstaver

Læs mere

Kapitel 2 Tal og variable

Kapitel 2 Tal og variable Tal og variable Uden tal ingen matematik - matematik handler om tal og anvendelse af tal. Matematik beskæftiger sig ikke udelukkende med konkrete problemer fra andre fag, og de konkrete tal fra andre fagområder

Læs mere

Adgangsgivende eksamen (udeladt kategori: Matematisk student med matematik på niveau A)

Adgangsgivende eksamen (udeladt kategori: Matematisk student med matematik på niveau A) Økonometri 1 Forår 2003 Ugeseddel 13 Program for øvelserne: Gruppearbejde Opsamling af gruppearbejdet og introduktion af SAS SAS-øvelser i computerkælderen Øvelsesopgave 6: Hvem består første årsprøve

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

Basal statistik for lægevidenskabelige forskere, forår 2012 Udleveret 6.marts, afleveres senest ved øvelserne i uge 15 (

Basal statistik for lægevidenskabelige forskere, forår 2012 Udleveret 6.marts, afleveres senest ved øvelserne i uge 15 ( Hjemmeopgave Basal statistik for lægevidenskabelige forskere, forår 2012 Udleveret 6.marts, afleveres senest ved øvelserne i uge 15 (10.-12. april) I et randomiseret forsøg sammenlignes vitamin D behandling

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

Tips og tricks til Proc Means. Per Andersen

Tips og tricks til Proc Means. Per Andersen Tips og tricks til Proc Means Capgemini gruppen Grundlagt 1967 i Paris, startet i Danmark 1984 Omsætning på verdensplan i 2008 8,7 milliader euro 91.600 medarbejdere på verdensplan, heraf 300 i Danmark

Læs mere

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

Økonometri 1 Efterår 2006 Ugeseddel 11

Økonometri 1 Efterår 2006 Ugeseddel 11 Økonometri 1 Efterår 2006 Ugeseddel 11 Program for øvelserne: Gruppearbejde og plenumdiskussion Introduktion til SAS øvelser SAS øvelser Øvelsesopgave: Paneldata estimation Sammenhængen mellem alder og

Læs mere

Excel-6: HVIS-funktionen

Excel-6: HVIS-funktionen Excel-6: HVIS-funktionen Regnearket Excel indeholder et væld af "funktioner" som kan bruges til forskellige ting indenfor f.eks. finans, statistik, logiske beregninger, beregninger med datoer og meget

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Axapta 3.0 Konverteringsvejledning

Axapta 3.0 Konverteringsvejledning Axapta 3.0 Konverteringsvejledning ectrl Dokumentversion 3.0 Juli 2008 - Datakonvertering 2008 Side 1 af 14 Indholdsfortegnelse DATAKONVERTERINGSVÆRKTØJET:...3 KARTOTEK INFORMATIONSOVERSIGT - FANEBLAD...5

Læs mere

Indhold Forelæsning Dat-D1: Regneark Matematik og databehandling 2012

Indhold Forelæsning Dat-D1: Regneark Matematik og databehandling 2012 Indhold Forelæsning Dat-D1: Regneark Matematik og databehandling 2012 Henrik L. Pedersen Institut for Matematiske Fag henrikp@life.ku.dk 1 Forberedelsesopgaverne Dat-D-1 og Dat-D-2 2 Regnearks grundprincipper

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Talregning. Aktivitet Emne Klassetrin Side. Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3

Talregning. Aktivitet Emne Klassetrin Side. Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3 VisiRegn ideer 1 Talregning Inge B. Larsen ibl@dpu.dk INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3 Vejledning til Talregning

Læs mere

Reeksamen i Statistik for Biokemikere 6. april 2009

Reeksamen i Statistik for Biokemikere 6. april 2009 Københavns Universitet Det Naturvidenskabelige Fakultet Reeksamen i Statistik for Biokemikere 6. april 2009 Alle hjælpemidler er tilladt, og besvarelsen må gerne skrives med blyant. Opgavesættet er på

Læs mere

Følgende tabel (fra Fisher) giver forøgelsen af sovetiden i timer fra et eksperiment med 10 patienter vedrørende 2 sovemidler A og B.

Følgende tabel (fra Fisher) giver forøgelsen af sovetiden i timer fra et eksperiment med 10 patienter vedrørende 2 sovemidler A og B. Modul 7: Exercises 7.1 Sovemidler......................... 1 7.2 Egetræer.......................... 2 7.3 Stofs trækstyrke..................... 3 7.4 Laboranters titreringsusikkerhed............ 5 7.5

Læs mere

Introduktion til R. March 8, Regne- og tegneprogrammet R kan frit downloades fra adressen. http : //mirrors.sunsite.dk.cran

Introduktion til R. March 8, Regne- og tegneprogrammet R kan frit downloades fra adressen. http : //mirrors.sunsite.dk.cran Introduktion til R March 8, 2004 1 Adgang til R Regne- og tegneprogrammet R kan frit downloades fra adressen http : //mirrors.sunsite.dk.cran 2 Start og afslutning. Help. I et vindue starter i R, typisk

Læs mere

Klog på SAS seminar, december 2013 Hvordan skjules password i loggen ved brug af macro, Svend Bang, Københavns Universitet

Klog på SAS seminar, december 2013 Hvordan skjules password i loggen ved brug af macro, Svend Bang, Københavns Universitet Klog på SAS seminar, december 2013 Hvordan skjules password i loggen ved brug af macro, Svend Bang, Københavns Universitet Baggrund: I et frugtbart samarbejde mellem Danmarks Statistik, Forskningsservice,

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Velkommen til StatBK. Program. Introduktion, summary measures, SAS. Praktisk info. Praktisk info

Velkommen til StatBK. Program. Introduktion, summary measures, SAS. Praktisk info. Praktisk info Program Introduktion, summary measures, SAS Helle Sørensen E-mail: helle@math.ku.dk I dag: Praktiske informationer Faglig intro: et par dataeksempler Datatyper Beskrivende statistik, bla. gennemsnit og

Læs mere

Projekt DATA step view

Projekt DATA step view Projekt DATA step view Af Louise Beuchert Formål Formålet med dette projekt, er at sammenligne tid/ressourcekonsekvenser ved at køre SASjobs på data hentet som henholdsvis en fysisk kopi af data filen

Læs mere

18 Multivejstræer og B-træer.

18 Multivejstræer og B-træer. 18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.

Læs mere

Øvelser til basalkursus, 2. uge

Øvelser til basalkursus, 2. uge Øvelser til basalkursus, 2. uge Opgave 1 Vi betragter igen Sundby95-materialet, og skal nu forbedre nogle af de ting, vi gjorde sidste gang. 1. Gå ind i ANALYST vha. Solutions/Analysis/Analyst. 2. Filen

Læs mere

MATEMATIK A-NIVEAU. Anders Jørgensen & Mark Kddafi. Vejledende eksempler på eksamensopgaver og eksamensopgaver i matematik, 2012

MATEMATIK A-NIVEAU. Anders Jørgensen & Mark Kddafi. Vejledende eksempler på eksamensopgaver og eksamensopgaver i matematik, 2012 MATEMATIK A-NIVEAU Vejledende eksempler på eksamensopgaver og eksamensopgaver i matematik, 01 Kapitel 3 Ligninger & formler 016 MATEMATIK A-NIVEAU Vejledende eksempler på eksamensopgaver og eksamensopgaver

Læs mere

Faculty of Health Sciences. Logistisk regression: Kvantitative forklarende variable

Faculty of Health Sciences. Logistisk regression: Kvantitative forklarende variable Faculty of Health Sciences Logistisk regression: Kvantitative forklarende variable Susanne Rosthøj Biostatistisk Afdeling Institut for Folkesundhedsvidenskab Københavns Universitet sr@biostat.ku.dk Sammenhæng

Læs mere

Vejledning for anvendelse af PensionsIndberetningssystem PI

Vejledning for anvendelse af PensionsIndberetningssystem PI Vejledning for anvendelse af PensionsIndberetningssystem PI PNN PENSION 190503/AMB Indholdsfortegnelse 1. INDBERETNINGER... 3 2. SØG INDBERETNING... 4 3. NY INDBERETNING... 5 4. INDLÆS FIL... 7 5. INDTAST

Læs mere

HOFTEALLOPLASTIK - DATAUDTRÆK OG IMPORT TIL EXCEL

HOFTEALLOPLASTIK - DATAUDTRÆK OG IMPORT TIL EXCEL HOFTEALLOPLASTIK - DATAUDTRÆK OG IMPORT TIL EXCEL Når man er logget på KMS systemet, vælges Dataudtræk under punktet Vælg modul, hvorefter der klikkes på Gå til: På næste side klikkes på knappen Opret:

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Grafregnerkravet på hf matematik tilvalg

Grafregnerkravet på hf matematik tilvalg Grafregnerkravet på hf matematik tilvalg Dette dokument er en sammenskrivning af uddrag af følgende skrifter: Undervisningsvejledning nr. 21 for matematik i HF (september 1995); findes på adressen: http://us.uvm.dk/gymnasie/almen/vejledninger/undervishf/hfvej21.htm;

Læs mere

1. Web-inkasso for fordringshaver

1. Web-inkasso for fordringshaver 1. Web-inkasso for fordringshaver 1.1 Login på hjemmesiden Man kan logge sig på via Skattestyrelsens hjemmeside { HYPERLINK "http://www.aka.gl" } (under Inddrivelsesmyndigheden) eller direkte på { HYPERLINK

Læs mere

Besvarelse af juul2 -opgaven

Besvarelse af juul2 -opgaven Besvarelse af juul2 -opgaven Spørgsmål 1 Indlæs data Dette gøres fra Analyst med File/Open, som sædvanlig. Spørgsmål 2 Lav regressionsanalyser for hvert køn af igf1 vs. alder for præpubertale (Tanner stadium

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Løsning til opgave i logistisk regression

Løsning til opgave i logistisk regression Løsning til øvelser i logistisk regression, november 2008 1 Løsning til opgave i logistisk regression 1. Først indlæses data, og vi kan lige sørge for at danne en dummy-variable for cml, som indikator

Læs mere

1 Start og afslutning. Help.

1 Start og afslutning. Help. Afdeling for Teoretisk Statistik STATISTIK 2 Institut for Matematiske Fag Jørgen Granfeldt Aarhus Universitet 24. september 2003 Hermed en udvidet udgave af Jens Ledet Jensens introduktion til R. 1 Start

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

Økonometri 1 Forår 2006 Ugeseddel 11

Økonometri 1 Forår 2006 Ugeseddel 11 Økonometri 1 Forår 2006 Ugeseddel 11 Program for øvelserne: Gruppearbejde og plenumdiskussion Introduktion til SAS øvelser SAS øvelser Øvelsesopgave 5: Paneldata estimation af indkomstligninger på danske

Læs mere

Bilag til Statistik i løb : Statistik og Microsoft Excel tastevejledning / af Lars Bo Kristensen

Bilag til Statistik i løb : Statistik og Microsoft Excel tastevejledning / af Lars Bo Kristensen Bilag til Statistik i løb : Statistik og Microsoft Excel tastevejledning / af Lars Bo Kristensen Microsoft Excel har en del standard anvendelsesmuligheder i forhold til den beskrivende statistik og statistisk

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

Vejledning i brug af RamQuery 11. december 2006

Vejledning i brug af RamQuery 11. december 2006 11. december 2006 11.12.2006 A346.79.2 WM-data Side 1 af 15 Indhold 1. INDLEDNING... 3 2. OPBYGNING AF DATAUDTRÆK... 3 2.1 Tabelnavigatoren... 3 2.2 Feltlisten... 3 2.3 Opstille kriterier... 5 2.3.1 Overordnet

Læs mere

Introduktion til funktioner, moduler og scopes i Python

Introduktion til funktioner, moduler og scopes i Python Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for

Læs mere

Institut for Matematiske Fag Matematisk Modellering 1 UGESEDDEL 6

Institut for Matematiske Fag Matematisk Modellering 1 UGESEDDEL 6 Institut for Matematiske Fag Matematisk Modellering 1 Aarhus Universitet Eva B. Vedel Jensen 25. februar 2008 UGESEDDEL 6 Forelæsningerne torsdag den 21. februar og tirsdag den 26. februar. Jeg har gennemgået

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Program. Konfidensinterval og hypotesetest, del 2 en enkelt normalfordelt stikprøve I SAS. Øvelse: effekt af diæter

Program. Konfidensinterval og hypotesetest, del 2 en enkelt normalfordelt stikprøve I SAS. Øvelse: effekt af diæter Program Konfidensinterval og hypotesetest, del 2 en enkelt normalfordelt stikprøve Helle Sørensen E-mail: helle@math.ku.dk I formiddag: Øvelse: effekt af diæter. Repetition fra sidst... Parrede og ikke-parrede

Læs mere

Man indlæser en såkaldt frequency-table i SAS ved følgende kommandoer:

Man indlæser en såkaldt frequency-table i SAS ved følgende kommandoer: 1 IHD-Lexis 1.1 Spørgsmål 1 Man indlæser en såkaldt frequency-table i SAS ved følgende kommandoer: data ihdfreq; input eksp alder pyrs cases; lpyrs=log(pyrs); cards; 0 2 346.87 2 0 1 979.34 12 0 0 699.14

Læs mere

Regressionsanalyse i SAS

Regressionsanalyse i SAS Københavns Universitet Statistik for Biokemikere Det naturvidenskabelige fakultet Inge Henningsen Afdeling for Anvendt Matematik og Statistik December 2006 Regressionsanalyse uden gentagelser Regressionsanalyse

Læs mere

LUP Fødende læsevejledning til afdelingsrapporter

LUP Fødende læsevejledning til afdelingsrapporter Indhold Hvordan du bruger læsevejledningen... 1 Oversigtsfigur... 2 Temafigur... 3 Spørgsmålstabel... 4 Respondenter og repræsentativitet... 6 Uddybende forklaring af elementer i figurer og tabeller...

Læs mere

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer

Læs mere

LUP læsevejledning til afdelingsrapporter

LUP læsevejledning til afdelingsrapporter Indhold Hvordan du bruger læsevejledningen... 1 Oversigtsfigur... 2 Temafigur... 3 Spørgsmålstabel... 4 Respondenter og repræsentativitet... 6 Uddybende forklaring af elementer i figurer og tabeller...

Læs mere

4. Snittets kædebrøksfremstilling og dets konvergenter

4. Snittets kædebrøksfremstilling og dets konvergenter Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi

Læs mere

GPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion

GPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion GPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion Alle henvendelser om GPS-Link bedes foretaget pr. email til supportdlsk@sejlsport.dk Hvad er GPS-Link? GPS-Link anvendes til overførsel af navigationsdata

Læs mere