SAS-feil kavalkade. Viggo Skar Oslo Universitetssykehus HF (OUS)

Like dokumenter
SAS-feil kavalkade. Viggo Skar Oslo Universitetssykehus HF (OUS)

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil

Slope-Intercept Formula

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

Exercise 1: Phase Splitter DC Operation

PSi Apollo. Technical Presentation

IN2010: Algoritmer og Datastrukturer Series 2

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner for KID bytte kvitteringsliste L02625 levert i CSV format

Vi skal se på lambda-uttrykk. Følgende er definerte og vil bli brukt gjennom oppgaven

Feilmelding Årsak Løsning

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 12. februar 2019

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 17. november 2017

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

Neural Network. Sensors Sorter

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

Syntax/semantics - I INF 3110/ /29/2005 1

Maple Basics. K. Cooper

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 26. april 2018

HONSEL process monitoring

Andrew Gendreau, Olga Rosenbaum, Anthony Taylor, Kenneth Wong, Karl Dusen

Øvingsforelesning 5 Python (TDT4110)

Independent Inspection

Databases 1. Extended Relational Algebra

Endringer i neste revisjon av EHF / Changes in the next revision of EHF 1. October 2015

Øvingsforelesning 5 Python (TDT4110)

Start MATLAB. Start NUnet Applications Statistical and Computational packages MATLAB Release 13 MATLAB 6.5

TDT4110 IT Grunnkurs Høst 2015

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Hjemmeeksamen 2 i INF3110/4110

INSTALLATION GUIDE FTR Cargo Rack Regular Ford Transit 130" Wheelbase ( Aluminum )

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Bestille trykk av doktoravhandling Ordering printing of PhD Thesis

NYHETER I ENTERPRISE GUIDE 7.12

UNIVERSITETET I OSLO

MAT1030 Diskret matematikk

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

ADDENDUM SHAREHOLDERS AGREEMENT. by and between. Aker ASA ( Aker ) and. Investor Investments Holding AB ( Investor ) and. SAAB AB (publ.

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

Hvordan kan man holde kontakten med venner eller familie? Kan du legge til noen ideer på listen? Sende tekstmeldinger. Sende (bursdags-)kort

Oppgave 1 (Opprett en database og en tabell)

Eksamen ENG1002/1003 Engelsk fellesfag Elevar og privatistar/elever og privatister. Nynorsk/Bokmål

Betinget eksekvering og logiske tester i shell

SEPA og M3. Svein Frode Nordby, Infor Norway. Infoteam / Webinar / Nov 25, 2016

MID-TERM EXAM TDT4258 MICROCONTROLLER SYSTEM DESIGN. Wednesday 3 th Mars Time:

Tilkobling og Triggere

Utviklingssak/ID Resume Endring (g2) Rettet i versjon (g1) Rettet i versjon

Systemdokumentasjon ELRAPP Vinterimport

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Certificates of Release to Service(CRS)

MARKEDSFØRINGS- PLAN

* This sheet is manipulated by the 'Options...' dialog and should not be changed by hand USANN USANN

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 33

Minimumskrav bør være å etablere at samtykke ikke bare må være gitt frivillig, men også informert.

Elektronisk innlevering/electronic solution for submission:

UNIVERSITETET I OSLO

Information search for the research protocol in IIC/IID

Dagens tema: Sjekking

Tilrettelegging av store datagrunnlag for analyse med SAS Scalable Performance Data Engine (SPDE) Steinar Helstrup 8.juni 2017

Elektronisk termostat med spareprogram. Lysende LCD display øverst på ovnen for enkel betjening.

Trådløsnett med Windows XP. Wireless network with Windows XP

Skanning del I INF /01/15 1

SubstiTUBE T5 High Output

Verden. Steg 1: Vinduet. Introduksjon

Et lite oppdrag i bakgrunnen

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

INSTALLATION GUIDE FTR Cargo Rack Regular Ford Transit 130" Wheelbase ( Aluminum )

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Lynkurs i shellprogrammering under Linux

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Administrasjon av postnummersystemet i Norge Post code administration in Norway. Frode Wold, Norway Post Nordic Address Forum, Iceland 5-6.

TwidoSuite kommunikasjon

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

MAT1030 Plenumsregning 1

SVM and Complementary Slackness

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

Bruk av egendefinert kode i SAS Data Integration Studio

Mathematics 114Q Integration Practice Problems SOLUTIONS. = 1 8 (x2 +5x) 8 + C. [u = x 2 +5x] = 1 11 (3 x)11 + C. [u =3 x] = 2 (7x + 9)3/2

ucosminexus Stream Data Platform - Application Framework Messages V04(E)

CAMES. Technical. Skills. Overskrift 27pt i to eller flere linjer teksten vokser opad. Brødtekst 22pt skrives her. Andet niveau.

Fra sekvensielt til parallelt

IN 211 Programmeringsspråk. Dokumentasjon. Hvorfor skrive dokumentasjon? For hvem? «Lesbar programmering» Ark 1 av 11

Del 3: Evaluere uttrykk

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

Introduksjon til DARK assembly

Flomnivåer er beregnet for forskjellige gjentaksintervaller og er presentert i tabellen nedenfor:

Institutt for biovitenskap

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Salting of dry-cured ham

MAT1030 Diskret Matematikk

FIRST LEGO League. Härnösand 2012

Dynamic Programming Longest Common Subsequence. Class 27

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Transkript:

SAS-feil kavalkade Viggo Skar vigska@ous-hf.no Oslo Universitetssykehus HF (OUS)

Litt om meg: Født 1973. Jobbet med SAS siden 1999. Begynte i forsikring, har jobbet i helse siden 2009. Kaller meg selv for datavarehusutvikler, men har også en del oppgaver i forhold til rapportutvikling, uttrekk, analyser og systemansvar.

-Syntaksfeil Dette er feil som SAS markerer som ERROR i loggen. -Semantiske feil SAS gir ingen feil på koden, men man får ikke det resultat man forventer. Ofte gir SAS en WARNING i loggen (men slett ikke alltid). -Tekniske feil SAS-systemet virker ikke av årsaker som ikke er direkte knyttet til koden man har skrevet. Disse arter seg forskjellig. Oftest får man en feilmelding i loggen som man ikke forstår noe av.

Syntaksfeil options DATASTMTCHK=ALLKEYWORDS; data nyttdatasett set andredata; 22 GOPTIONS ACCESSIBLE; 23 options DATASTMTCHK=ALLKEYWORDS; 24 data nyttdatasett 25 set andredata; 57 ERROR 57-185: SET is not allowed in the DATA statement when option DATASTMTCHK=ALLKEYWORDS. Check for a missing semicolon in the DATA statement, or use DATASTMTCHK=NONE. 26 options DATASTMTCHK=NONE; data nyttdatasett set andredata; data semifeil; var1 = 1; var2 = var1 + 2 28 options DATASTMTCHK=NONE; 29 data nyttdatasett 30 set andredata; 31 NOTE: The data set WORK.NYTTDATASETT has 1 observations and 0 variables. NOTE: The data set WORK.SET has 1 observations and 0 variables. NOTE: The data set WORK.ANDREDATA has 1 observations and 0 variables. NOTE: DATA statement used (Total process time): real time 0.08 seconds cpu time 0.03 seconds 34 data semifeil; 35 var1 = 1; 36 var2 = var1 + 2 37 22 ERROR 22-322: Syntax error, expecting one of the following:!,!!, &, *, **, +, -, /, <, <=, <>, =, >, ><, >=, AND, EQ, GE, GT, IN, LE, LT, MAX, MIN, NE, NG, NL, NOTIN, OR, ^=,,, ~=.

Syntaksfeil data ubalanse; format tekst1 $1000.; tekst1 = '&rapport. &dato.!!" OUS LIS"; data helt_aar; format start slutt eurdfdd10.; do mnd = 1 to 12; start = mdy(mnd, 1, 2017); slutt = intnx('month', start, 1)-1; dager = sum(slutt, -start, 1); output; 23 data ubalanse; 24 format tekst1 $1000.; 25 tekst1 = '&rapport. &dato.!!" OUS LIS"; 26 27 25 tekst1 = '&rapport. &dato.!!" OUS LIS"; 49 NOTE 49-169: The meaning of an identifier after a quoted string might change in a future SAS release. Inserting white space between a quoted string and the succeeding identifier is recommended. 28 data helt_aar; 29 format start slutt eurdfdd10.; 30 do mnd = 1 to 12; 31 start = mdy(mnd, 1, 2017); 32 slutt = intnx('month', start, 1)-1; 33 dager = sum(slutt, -start, 1); 34 output; 36 32 slutt = intnx('month', start, 1)-1; 388 ERROR 388-185: Expecting an arithmetic operator. 28 data helt_aar; 29 format start slutt eurdfdd10.; 30 do mnd = 1 to 12; 31 start = mdy(mnd, 1, 2017); 32 slutt = intnx('month', start, 1)-1; 33 dager = sum(slutt, -start, 1); 34 output; 35 36 _ 117 ERROR 117-185: There was 1 unclosed DO block.

Semantikk-feil data missingverdier; var1 = 1; var2 =.; sum1 = var1 + var2; sum2 = sum(var1, var2);

Semantikk-feil data ekstab; format tekst1 $10.; tekst1 = '123'; tall1 = 321; output; tekst1 = 'ABC'; tall1 = '111'; output; data konvertert; set ekstab; sum1 = tekst1 + tall1; sum2 = sum(tekst1, tall1); 23 data ekstab; 24 format tekst1 $10.; 25 tekst1 = '123'; 26 tall1 = 321; 27 output; 28 tekst1 = 'ABC'; 29 tall1 = '111'; 30 output; 31 NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 29:11 33 data konvertert; 34 set ekstab; 35 sum1 = tekst1 + tall1; 36 sum2 = sum(tekst1, tall1); 37 NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 35:10 36:14 NOTE: Invalid numeric data, tekst1='abc', at line 35 column 10. NOTE: Invalid numeric data, tekst1='abc', at line 36 column 14. tekst1=abc tall1=111 sum1=. sum2=111 _ERROR_=1 _N_=2 NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 1 at 35:17

data liten_tab; kat_var = 1; var1 = 123; output; var1 = 321; output; var1 =.; output; kat_var =.; var1 = 101; output; Semantikk-feil proc summary data= liten_tab; class kat_var; variable var1; output out=sum_missing sum=; proc summary data= liten_tab missing; class kat_var; variable var1; output out=sum_missing2 sum=;

Semantikk-feil data forlitetall; format litetall 3. stortnok 8.; litetall = 1973; alder = sum(year(today()), -litetall); stortnok = litetall; proc print =forlitetall; data forlitentekst; format litentekst $3.; litentekst = "FANS"; proc print =forlitentekst;

Semantikk-feil data datoer; format dt_var date9. dttm_var datetime20. dttm_varkort dttm_varkort2 datetime9.; dt_var = today(); dttm_var = datetime(); dttm_varkort = dttm_var; dttm_varkort2 = '01mar2017:00:00:00'dt; proc print data=datoer; data utregning; set datoer; dager = sum(dttm_varkort, -dttm_varkort2); keep dager; proc print data=utregning;

Semantikk-feil * Amerikansk vs norsk; data ukedag; * Lørdag; dag1 = weekday("04mar2017"d); * Søndag; dag2 = weekday("05mar2017"d); ukenr1 = week("05mar2017"d); ukenr2 = week("05mar2017"d, 'v');

Ekte feil data org; format enhet enhetkode $10.; input enhet $1-5 enhetkode $; cards; AVD A AA AVD B AB AVD C AC AVD D AD ; data orgtillegg; format enhet enhetkode $10.; input enhet $1-5 enhetkode $; cards; AVD D AD ; proc append base=org data=orgtillegg force; quit;

Ekte feil data org_fmt; format start label fmtname $10.; set org; start = strip(enhetkode); label = strip(enhet); fmtname = '$org_eks'; drop enhet enhetkode; proc format cntlin=org_fmt; quit; 53 proc format cntlin=org_fmt; ERROR: For format $ORG_EKS, this range is repeated, or values overlap: AD-AD. 54 quit;

Ekte feil data trans; format enhetkode $10.; input enhetkode $ tulletall; cards; AA 123 AA 213 AB 312 AB 495 AC 484 AC 348 AD 383 AD 976 ; data transfiks_feil; set trans; enhet = put(enhetkode, $org_eks.); 70 data transfiks_feil; 71 set trans; 72 enhet = put(enhetkode, $org_eks.); 484 NOTE 484-185: Format $ORG_EKS was not found or could not be loaded.

Ekte feil data ett_aar; do mnd = 1 to 12; verdi = round(rand('normal')*1000, 100); output; end; options validvarname=v7; proc transpose data=ett_aar out=trans_aar; id mnd; var verdi; quit; options validvarname=any; proc transpose data=ett_aar out=trans_aar2; id mnd; var verdi; quit;

Sjekkliste -Les loggen. -Sjekk endringer (programmering, kilder, system, dato). -Sjekk mot forventninger (gjerne en gammel log). -Kjør koden steg for steg. -Be om hjelp. -Google. The usual suspects: -Feilsøking (options obs=1000). -Hardkoding. -Macro (options symbolgen mprint mlogic). -Endring metadata.