Appelsiner, bananer og citroner



Relaterede dokumenter
Tips og tricks til Proc Means. Per Andersen

SAS formater i Danmarks Statistik

PUT og INPUT funktionerne

Tips og tricks til Proc Means. Per Andersen Senior IM Consultant Dong Energy, Group IT, Trading IT, Analytics

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

Evaluering af unges brug af alkohol social pejling april 2013

Hvad er en henvisningsboks. Vejledning til henvisningsbokse

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

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

Postoperative komplikationer

Besvarelse af juul2 -opgaven

Arbejd videre med statistik

EVALUERING I SURVEYXACT TRIN FOR TRIN

EVALUERING I SURVEYXACT TRIN FOR TRIN

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

Nyt i Analyseportalen og Web Report Studio. Analyseportalen

Deltag i en quiz: Test din viden i SAS -programmering

Easy Guide i GallupPC

Vejledning til udtræk fra UNIK (Version: UNIK Bolig 4)

Redaktørvejledning for Skriv en artikel

Problemløsning i retvinklede trekanter

Conventus Træner Brugervejledning Log ind Figur 1 - Log Ind

Projekt DATA step view

Vejledning i udtræk af input-output data fra Statistikbanken

Regressionsanalyse i SurveyBanken

SPSS introduktion Om at komme igang 1

Vejledning til datatræk i Novax på ICPC-koder

Introduktion til SQL queries

Lineær og logistisk regression

Manual til Dynamicweb Februar 2010

Statistiske Modeller 1: Kontingenstabeller i SAS

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

Start i cirklen med nummer 1 - følg derefter pilene:

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

Tyngdekraft i Scratch

Kom i gang med. Kapitel 9 Impress: Præsentationer i OpenOffice.org. OpenOffice.org

I denne manual kan du finde en hurtig introduktion til hvordan du:

Kom godt i gang med I-bogen

HOFTEALLOPLASTIK - DATAUDTRÆK OG IMPORT TIL EXCEL

Vejledning til fravær i Tabulex TEA

ALMINDELIGT ANVENDTE FUNKTIONER

Søgning på patienter med kræft

Skriftlig fremstilling

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN

Reeksamen i Statistik for Biokemikere 6. april 2009

Vejledning til fravær i Tabulex TEA

Opgaveteknisk vejledning Word 2016 til Mac. Tornbjerg Gymnasium 10. december 2015

Statistik Lektion 1. Introduktion Grundlæggende statistiske begreber Deskriptiv statistik Sandsynlighedsregning

VisualDRG brugermanual

Introduktion til SAS macro language

ActiveBuilder Brugermanual

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

Poster design. Meningen med en poster

RUT. Brugervejledning. Kræftens Bekæmpelse

Vejledning for LOF s afdelingshjemmeside

Matema10k. Matematik for hhx C-niveau. Arbejdsark til kapitlerne i bogen

MDS koder. Oprette eller passivere landsdækkende koder for Undersøgelser

Mini guide til Mobilize Me

Vejledning til udtræk fra UNIK (Version: UNIK Bolig 4)

Hvorfor SAS Kort intro til SAS

Opgaveteknisk vejledning Word 2011 til Mac. Tornbjerg Gymnasium 10. december 2015

Generelt om hjemmesiden.

IsenTekst Indhold til Internettet. Manual til Wordpress.

Ghostbusters. Introduktion. Scratch. Du skal lave et fangelegsspil med spøgelser! Arbejdsliste. Test dit Projekt. Gem dit Projekt

Pralemappen.dk Din online portfolio Brugerhåndbog til undervisere Brugerhåndbog til undervisere

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

3) Først og fremmest kan du vælge hvilket tema din side skal have.

Vejledning Lønindberetning. Opdateret 14. februar 2012

SecureAware Opfølgning Manual

Brugervejledning. Sådan laves et opslag med avanc. søgning. December 2010

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

Tekniske retningslinjer for opgaveskrivning

Lærereksemplar. Kun til lærerbrug. Arbejdsbogen 1. Ny udgave. Gerner Birk Kristiansen. Tekst og tegninger DATO:

Telefoniansvarlig. Telia Selvbetjening. Kom godt i gang med Telia Selvbetjening

Guide til Condes. Indhold:

Få adgang til medieovervågningen

Introduktion til SPSS

Manual til opsætning af Jit-klient version 1.0. Opsætning. Copyright Jit-Danmark Aps Find mere information på

Conventus Instruktør brugervejledning

RUT-ruteplanlægningsvejledning. Brugervejledning Folkekirkens Nødhjælp Sogneindsamling

Transkript:

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 eller varemærker tilhørende SAS Institute Inc i USA og andre lande indikerer registrering i USA

Appelsiner, bananer og citroner Denne artikel handler om rækkefølger Hvordan får man værdierne af grupperingsvariabler i PROC TABULATE til at komme i den rigtige rækkefølge? Find svaret her! Syntaks mv retter sig mod SAS 9 Introduktion Vi laver lige en nem tabel over de 9 skoleelever i datasættet SASHELPCLASS Vi tæller op, hvor mange elever, der er fordelt på alder og køn (AGE og SEX): proc tabulate data=sashelpclass; class sex age; Som det fremgår af den venstre tabel, vil rækkefølgen af grupperingsvariablernes værdier være i stigende sorteringsorden (ascending order) AGE har værdier fra til 6, og SEX viser F og M (F kommer før M): F M 5 6 F M 6 5 Hvis man hellere vil have dem i omvendt rækkefølge (faldende orden eller descending order), må man angive det for den eller de grupperingsvariabler, dette skal gælde for Hvis man kun vil angive noget for en enkelt grupperingsvariabel, må (og kan) man lave flere CLASSsætninger: proc tabulate data=sashelpclass; class sex; class age / descending; Forskellig sorteringsorden for en Resultatet skulle gerne fremgå af den højre tabel i figuren grupperingsvariabel I hvilken rækkefølge, bogstaver, tal og tegn kommer, er bestemt af SORTSEQ option, som bør sættes til DAISH, hvis man vil have æøåæøå til at komme i en rimelig rækkefølge Hvis DAISH ikke opfylder behovet feks hvis man vil have en sorteringsrækkefølge som i Oracle, så kan man jo selv lave en såkaldt translate tabel Læs herom i den næste artikel Brugen af ORDER= Med ORDER= har man også nogle muligheder for at styre rækkefølgen af grupperingsvariablernes værdier ORDER= kan angives i selve PROC TABULATE-sætningen, hvor den så gælder for samtlige grupperingsvariabler Hvis dette ikke er ønskeligt, må man angive ORDER= for den eller de aktuelle grupperingsvariabler Så må man igen lave flere CLASS-sætninger

Vi skal senere se, hvordan vi kan udnytte denne option, når vi bruger formater på vores grupperingsvariabler

I denne oversigt kan man se, hvad man kan sætte ORDER= til: Forskellige værdier for ORDER= Værdi Alias Betydning DATA Rækkefølgen bliver, som de mødes i datasættet FORMATTED FORMATED FMT Rækkefølgen bliver efter de formaterede værdier Dette kræver selvfølgelig, at der er et format tilknyttet EXTERAL variablen UFORMATTED UFMT ITERAL Rækkefølgen bliver sorteret i stigende orden efter værdierne FREQ Rækkefølgen bestemmes af det samlede antal observationer for hver værdi ORDER=UFORMATTED er standard Effekten af ORDER= er ikke altid logisk edenstående tabel er dannet ud fra et simpelt SAS -datasæt med brugen af ORDER=DATA: Værdierne for variablen DYR kommer i dyrefoder den forventede rækkefølge, som de mødes i datasættet, nemlig kat og hund Men dyr foder foderet driller Det kommer i den mødte rækkefølge for katten, men ikke for kat fisk dyr foder hunden kat kat hund hund hund kød mælk ben fisk kød kat fisk hund kød mælk fisk kød ben proc tabulate data=dyrefoder order=data; class dyr foder; table dyr*foder,n; Dette skyldes, at PROC TABULATE bibeholder rækkefølgen af værdierne af FODER, som de er fundet for den første værdi af DYR Og det bliver så, som udgangspunkt, rækkefølgen for hund Kommer der så noget mad, som ikke er listet under kat, så tilføjes de forskellige slags hundemad i den rækkefølge, de kommer i i datasættet Så hvis hunde overhovedet ikke havde mad-overlap med katte, så ville man ikke have opdaget problemet

Styring af de formaterede værdiers rækkefølge Simpel brug Pr standard er rækkefølgen af de formaterede værdier af en grupperingsvariabel bestemt af den sorterede rækkefølge af de bagvedliggende værdier 5 6 value $koenfmt 'M'='' 'F'=''; proc tabulate data=sashelpclass; class age sex; format sex $koenfmt; I eksemplet ser vi først og herefter, fordi F kommer før M Hvis vi vil have sorteret efter de formaterede værdier, må dette angives i CLASS-sætningen med ORDER=FORMATTED: proc tabulate data=sashelpclass; keylabel =' '; class age sex / order=formatted; format sex $koenfmt; I kodeeksemplet er i tabellen fjernet med KEYLABEL-sætningen Det vil jo som regel fremgå af tabellens overskrift (som ikke er med her ) eller lignende, hvad tallene i tabellen dækker over Så bliver rækkefølgen således i tabellen: kommer korrekt alfabetisk før 5 6 5

Samme rækkefølge som beskrevet i formatet Der kan være situationer, hvor man ønsker, at rækkefølgen er lige præcis den, som man angiver i formatet Her må man benytte (OTSORTED) feks: value $koenfmt (notsorted) 'M'='' 'F'='' 'U'='Køn ikke oplyst'; Vi er altså ude efter at få rækkefølgen Køn ikke oplyst (OTSORTED) i VALUE-sætningen angiver, at SAS ikke bag om ryggen skal lave en sorteret liste af værdier I PROC TABULATE må man så også garnere med PRELOADFMT og ORDER=DATA i CLASS-sætningen: proc tabulate data=class; keylabel =' '; class age; class sex / preloadfmt order=data; format sex $koenfmt; Tabellen kommer som forventet til at se således ud: Køn ikke oplyst 5 6 I testdatasættet er det observation nr af SASHELPCLASS, som har fået koden U for kønnet 6

Missing values i grupperingsvariabler Missing values i grupperingsvariabler kommer pr standard IKKE med ud i en tabel Og man kan ikke via formatet redde sig ud af problemet: Her er eksempler på definition af et format, hvor man kunne foranlediges til at tro, at en blank ville blive samlet op i gruppen Ukendt kode value $koenfmt (notsorted) 'M'='' 'F'='' 'U'='Køn ikke oplyst' ' '='Ukendt kode' ; eller value $koenfmt (notsorted) 'M'='' 'F'='' 'U'='Køn ikke oplyst' other ='Ukendt kode'; Løsningen er at bruge nøgleordet MISSIG i enten PROC TABULATE-sætningen eller i CLASSsætningen: proc tabulate data=test missing; keylabel =' '; class age; class sex / preloadfmt order=data ; format sex $koenfmt; eller proc tabulate data=test ; keylabel =' '; class age; class sex / preloadfmt order=data missing; format sex $koenfmt; 7

At få vist samtlige grupperinger i ét format Hvis man har ét eller flere formater, som definerer en gruppering, der ikke er datagrundlag for, er det alligevel muligt at få vist samtlige grupperinger Dette gøres med PRITMISS i TABLE-sætningen feks: value $koenfmt (notsorted) 'M'='' 'F'='' 'U'='Køn ikke oplyst' other='ingen kendt kode'; proc tabulate data=sashelpclass; keylabel =' '; class age; class sex / preloadfmt order=data; table age, sex / printmiss; format sex $koenfmt; hvilket giver anledning til følgende tabel på trods af, at datasættet SASHELPCLASS udelukkende indeholder koderne F og M i variablen SEX Køn ikke oplyst Ingen kendt kode 5 6 På den måde kan man sikre sig ensartede tabeller på trods af varierende datamateriale 8

5 Udelade værdier som falder uden for formatet Værdier, som ikke kan formateres via et format, vil altid komme med i tabellen De vil så bare figurere med den originale værdi feks Feks vil følgende value aldergr ='-årige' ='-årige'; proc tabulate data=sashelpclass ; class age sex; format age aldergr; -årige -årige F M give følgende tabel (til højre for koden) 5 6 Hvis man vil skille sig af med de værdier, der ikke fanges af formatet, kan man bruge EXCLUSIVE i CLASS-sætningen kombineret med PRELOADFMT: proc tabulate data=sashelpclass ; class age / preloadfmt exclusive; class sex; format age aldergr; F M -årige -årige 9

Multilabel- eller overlappende formater Ved overlappende formater forstås formater, hvor en værdi af en variabel kan tilhøre eller flere grupperinger Overlappende formater kan benyttes til at lave sammentællinger, som ikke i forvejen er foretaget i en eller anden variabel, og som ikke kan klares med ALL Lad os se på et eksempel Datasættet CLASS indeholder 9 elever Kønnet er registreret som F for pige og M for dreng af observationerne er en elev, hvor kønnet er registreret som U I tabellen ønsker vi at se følgende grupperinger fordelt på alder: Alle og Køn ikke registreret Så vi iler med at lave et format, som klarer broderparten af grupperingen: value $koenfmt (multilabel) 'M'='' 'F'='' 'F','M'='Begge køn' 'U'='køn ej registreret'; Læg mærke til, at der skal anføres (MULTILABEL), når man laver overlappende formater Her kommer så koden til at danne tabellen (bemærk MLF på den variabel, som bruger et multilabel-format): proc tabulate data=class; keylabel =' ' all='i alt'; class age; class sex / mlf; table all age, all sex; format sex $koenfmt; I alt Begge køn køn ej registreret I alt 9 8 9 9 Den dannede tabel kommer til at se således ud: 5 5 5 6 Læg mærke til, at ALL (heldigvis) kun regner sammen på primære grupperinger, så man kun får det antal hoveder, der reelt findes i datasættet 0

Rækkefølgen af grupperingerne er UFORMATTED Hvis man vil ændre på rækkefølgen, så den bliver præcis som angivet i formatet, må man bruge OTSORTED i PROC FORMAT kombineret med PRELOADFMT og ORDER=DATA i CLASS-sætningen: value $koenfmt (multilabel notsorted) 'M' ='' 'F' ='' 'F','M'='Begge køn' 'U' ='Køn ej registreret'; proc tabulate data=class; keylabel =' ' all='i alt'; class age; class sex / mlf preloadfmt order=data; table all age, all sex; format sex $koenfmt; I koden herover er der (igen) selvstændige CLASS-sætninger for AGE og SEX, så SAS ikke tror, at MLF osv skal gælde for begge CLASS-variabler Så kommer tabellen til at se således ud: I alt Begge køn Køn ej registreret I alt 9 9 9 8 5 5 5 6

5 Læse mere? Hvis man vil vide mere i dybden om formater, henvises til SAS-Hjælpen, som fås ved at klikke i menuen under Help, SAS Help and Documentation, hvis man benytter SAS Classic : Proc Format kan ses under Base SAS, Procedures: Og man kan læse mere om formater under Base SAS, SAS Language Dictionary, Dictionary of Language Elements, Formats:

En tilsvarende opbygning findes på internettet: http://supportsascom/onlinedoc/9/docmainpagejsp Og har man lyst til at printe ud, så man har til lidt hyggelæsning, så er der rige muligheder på http://supportsascom/documentation/onlinedoc/9pdf/index_9html hvor dokumentationen findes i PDF-format Dette modsvarer de mange hyldemeter manualer, man havde stående i reolen førhen Interessant her er: Base SAS 9 Procedures Guide som indeholder alle procedurerne inkl PROC FORMAT og PROC TABULATE SAS 9 Language Reference: Concepts Alt det basale omkring SAS På det forståelsesmæssige plan Her kan man læse mere om feks formater SAS 9 Language Reference: Dictionary, Fifth Edition Den hårde syntaks Sådan gør du Her kan du læse mere om feks FORMAT-sætningen og de mange indbyggede formater i SAS Man behøver jo ikke udskrive hele manualen, men man kan udskrive de kapitler, som er relevante lige nu