SAS FANS – NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 2 TEMA 1 MULTIPROSESSERING MED DATASTEGET • Multiprosessering har lenge vært et tema i SAS • Stadig ny funksjonalitet er med på å skulle utnytte «jernet» maksimalt • Hva er PROC DS2, og hvorfor trenger vi denne? C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 3 TEMA 2 MAKRONYTT Automatic Macro Variables SYSADDRBITS contains the number of bits of an address. SYSENDIAN contains an indication of the byte order of the current session. The possible values are LITTLE or BIG. SYSNOBS contains the number of observations read from the last data set that was closed by the previous procedure or DATA step. C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 4 TEMA 2 MAKRONYTT SYSODSESCAPECHAR displays the value of the ODS ESCAPECHAR= from within the program. SYSSIZEOFLONG contains the length in bytes of a long integer in the current session. SYSSIZEOFPTR contains the size in bytes of a pointer. SYSSIZEOFUNICODE contains the length in bytes of a Unicode character in the current session. C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 5 TEMA 2 MAKRONYTT Macro Functions %SYSMACEXEC indicates whether a macro is currently executing. %SYSMACEXIST indicates whether there is a macro definition in the WORK.SASMACR catalog. %SYSMEXECDEPTH returns the depth of nesting from the point of call. %SYSMEXECNAME returns the name of the macro executing at a nesting level. C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 6 TEMA 2 MAKRONYTT Macro Statements %SYSMSTORECLEAR closes stored compiled macros and clears the SASMSTORE= library. %SYSMACDELETE deletes a macro definition from the WORK.SASMACR catalog. Macro System Options MAUTOCOMPLOC displays in the SAS log the source location of the autocall macros when the autocall macro is compiled. MAUTOLOCINDES specifies whether the macro processor prepends the full pathname of the autocall source file to the description field of the catalog entry of compiled auto call macro definition in the WORK.SASMACR catalog. C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 7 TEMA 2 MAKRONYTT Macro Statements MCOVERAGE enables the generation of coverage analysis data. MCOVERAGELOC= specifies the location of the coverage analysis data file. C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 8 TEMA 3 REGULAR EXPRESSIONS Definition of Perl Regular Expression (PRX) Functions and CALL Routines Perl regular expression (PRX) functions and CALL routines refers to a group of functions and CALL routines that use a modified version of Perl as a pattern-matching language to parse character strings. You can perform the following tasks: • • • • search for a pattern of characters within a string extract a substring from a string search and replace text with other text parse large amounts of text, such as web logs or other text data Perl regular expressions comprise the character string matching category for functions and CALL routines. For a short description of these functions and CALL routines, see Functions and CALL Routines by Category in the Dictionary section of this document. C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 9 TEMA 3 REGULAR EXPRESSIONS Benefits of Using Perl Regular Expressions in the DATA Step Using Perl regular expressions in the DATA step enhances searchand-replace options in text. You can use Perl regular expressions to perform the following tasks: • validate data • replace text • extract a substring from a string You can write SAS programs that do not use regular expressions to produce the same results as you do when you use Perl regular expressions. However, the code without the regular expressions requires more function calls to handle character positions in a string and to manipulate parts of the string. Perl regular expressions combine most, if not all, of these steps into one expression. The resulting code is less prone to error, easier to maintain, and clearer to read. C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 10 TEMA 3 REGULAR EXPRESSIONS Eksempel på å bruke Perl Regular Expressions i et DATA Steg /* Lager data set med liste med navn */ proc ds2; data names; dcl char(32) name; method init(); name=‘Dybvig, Petter'; output; name=‘Fiskaaen, Marit'; output; name=‘Hansen, Vegard'; output; name=‘Sørheim, Mikkel'; output; end; enddata; run; quit; C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 11 TEMA 3 REGULAR EXPRESSIONS Eksempel på å bruke Perl Regular Expressions i et DATA Steg /* Bytte rekkefølge på etternavn og fornavn */ proc ds2; data ReversedNames; method run(); set names; name=prxchange('s/(\w+), (\w+)/$2 $1/', -1, name); end; enddata; run; quit; title 'FANS i Stavanger' ; title2 'Navn på foredragsholdere fra SAS'; proc print data=ReversedNames; run; C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 12 TEMA 3 REGULAR EXPRESSIONS C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 13 TEMA 3 REGULAR EXPRESSIONS proc format; invalue xxx (default=20) '/(\d+):(\d\d)(?:\.(\d+))?/' (REGEXP) = [time8.] '/\d\d\D\D\D\d\d/' (REGEXP) = [date7.] '/\d\d\D\D\D\d\d\d\d/' (REGEXP) = [date9.] other=_error_; run; C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 14 TEMA 4 LITT OM GRAFIKK • Utgangspunkt i vaksinasjonsdebatten. I Norge, USA og ellers har debatten vært stor. På blogger , Facebook og i tradisjonelle media • https://www.tycho.pitt.edu/ Prosjekt Tycho – fra Universitetet i Pittsburgh • Litt grafikk: http://graphics.wsj.com/infectious-diseases-andvaccines/ • Databasen er støttet av Bill & Melinda Foundation og National Institute of Health C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . 15 TEMA 4 LITT OM GRAFIKK • Vanskelig å skille null verdier (svært lysesblå) fra missing verdier (lys grå) • Ikke nok plass for alle navn på stater verdier på venstre side. • Når man holder musa over de fargede blokkene for å se på teksten blir boksen lyseblå. Dette kan få en til å tro at det er fargen på boksen. • Selve grafen sier ikke at måleenheten er antall tilfeller pr. 100K mennesker pr. år. • Fargekodene er ikke umiddelbart intuitive mhp verdi, siden de bruker «semi-regnbue» fargekoding. Dette gjelder særlig i gul/grønn/blå enda av skalaen C op yr i g h t © 2 0 1 5 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
© Copyright 2024