SAS Options – Versatile Players in the Game of SAS Denise Poll, SAS Institute Inc. Back in the “Day” Today ---1500+ SAS System Options What kinda “stuff” gets customized? Appearance of SAS output – PDF* options Handling of files – ENGINE=V9 Performance related – SORTSIZE= Security – PDFSECURITY= Macro - MACRO Game Plan Basics Interfaces Tricks of the game Acknowledgements and Questions Basics of Syntax Syntactically speaking --Name and Value combination » Option METAPORT = 8561 ; /* Numeric */ » Option NOFMTERR; /* Boolean */ » Option CMPLIB = sasuser.funcs; /* Character */ Comparisons - System Options System options – Remain in effect for all DATA and PROC steps unless re-specified Specify using: Options statement » Options DATASTMTCHK = ALLKEYWORDS; Command line and configuration files » -DATASTMTCHK ALLKEYWORDS Options Window Comparisons - Data Set Data set options – apply to the processing of the SAS data set with which they appear. Some data set options are also SAS System options. Specify using Data new ; /* Usage of FIRSTOBS overrules any previous setting */ set study ( FIRSTOBS = 5); Comparisons Statement Statement options – control the action of the statement in which they appear Specify using Proc Print data=study (FIRSTOBS = 20); Forest For The Trees If there are over 1500+ SAS System options how do I find the one that I need? Documentation is always helpful Proc Options LISTGROUPS; Proc Options; Logical Groups Proc Options Group=(SORT PERFORMANCE) ; Group=SORT ….. SORTSIZE=0 Size parameter for sort Group=PERFORMANCE …… BUFNO=1 Number of buffers for each SAS data set DMS Options Window – RMButton to Find by Name SAS Enterprise Guide Tooltip Meaning and Value Completion SAS System Options Interfaces GETOPTION function Proc Options Command line Configuration files – Verbose and restricted option files Options statement Options window Procs Optsave and Optload DMOPTSAVE and DMOPTLOAD SQL usage Getoption Function Keywords “Good Golly Miss Molly” Subset of Return Value Options DEFAULTVALUE - returns the default option value STARTUPVALUE - returns value from SAS startup HOWSET – returns a character string indicating setting interface Subset of Return Value Formatting Options EXPAND - WIN and UNIX, expand Environment Variables KEYWORD - Option Name = Value LOGNUMBERFORMAT – Numeric option value with “,”s Getoption - Default and Startup Values SAS -YEARCUTOFF 1999 1 Options YEARCUTOFF = 1950; 2 %put Returns Just the Option Value: %sysfunc(Getoption(YEARCUTOFF)) ; Returns Just the Option Value: 1950 9 %put Returns Name and Default Value: %sysfunc(Getoption(YEARCUTOFF, KEYWORD, DEFAULTVALUE)) ; Returns Name and Default Value: YEARCUTOFF=1920 1 %put Returns Name and Startup Value: 2 %sysfunc(Getoption(YEARCUTOFF, KEYWORD, STARTUPVALUE)) ; Returns Name and Startup Value: YEARCUTOFF=1999 Getoption - Tattle Tail Feature 7 %put Identifies current value setting interface: 8 %sysfunc(Getoption(YEARCUTOFF, HOWSET)) ; Identifies current value setting interface: SAS Session Startup Command Line GETOPTION Function – Programmatic Use! Sas –orientation portrait Options Orientation = LANDSCAPE ; %let setopt = %sysfunc(GETOPTION (Orientation, KEYWORD, STARTUPVALUE)); Options &setopt; /* Orientation=PORTRAIT */ Getoption Formatting Options 15 %put Option Value: %sysfunc(Getoption(SASAUTOS)); Option Value: ( "!sasroot\.....\auto\en" "!sasroot\....\testauto" ) 16 %put Expand Environment Variables in Option Value: 17 %sysfunc(Getoption(SASAUTOS, EXPAND)) ; Expand Environment Variables in Option Value: "C:\SASv9\....auto\en" "C:\SASv9\....testauto" ) ( 18 %put Option Value: %sysfunc(Getoption(OBS)); Option Value: 9223372036854775807 19 %put Return numeric value with commas: 20 %sysfunc(Getoption(OBS, LOGNUMBERFORMAT)) ; Return numeric value with commas: 9,223,372,036,854,775,807 A True Classic - Proc Options OPTION and GROUP LOGNUMERFORMAT LISTGROUPS - displays options in each group DEFINE VALUE INSERT, APPEND, LISTINSERTANDAPPEND EXPAND RESTRICT – are restricted LISTRESTRICT – can restrict Proc Options - Display Option Values Proc Options Option=(OBS ORIENTATION) >1 specified LOGNUMBERFORMAT; OBS=9,223,372,036,854,775,807 Number of the last observation to process ORIENTATION=PORTRAIT Orientation to use when printing Again -- Logical Groups Proc Options Group=(SORT PERFORMANCE) ; Group=SORT ….. SORTSIZE=0 Size parameter for sort Group=PERFORMANCE …… BUFNO=1 Number of buffers for each SAS data set Option Properties Proc Options Option=AUTOEXEC DEFINE ; Group= ENVFILES Group Description: SAS library and file location information Type: The option value is of type CHARACTER Maximum Number of Characters: 1024 More Information – Option DEFINE When Can Set: Environment Startup or Session Startup only Casing: The option value is retained with original casing Quotes: If present during "set", start and end quotes are removed Restricted: Your Site Administrator cannot restrict modification of this option Optsave: Proc Optsave or command Dmoptsave will not save this option Proc Options Define For A Numeric Option Proc Options Option=OBS Define ; run; … Range of Values: The minimum is 0 and the maximum is 9223372036854775807 Valid Syntax(any casing): MIN|MAX|n|nK|nM|nG|nT|hexadecimal Numeric Format: Usage of LOGNUMBERFORMAT impacts the value format <<<Adds commas Tattle Tail Feature – Value Keyword The GETOPTION function has the HOWSET keyword Proc Options uses the “VALUE” keyword to identify what interfaces set the option value Some interfaces are: » command line, Config file(s), Options statement….. Options that can “add to” an option value » INSERT= and APPEND= Options Proc Options Simple Usage – Value Keyword Proc Options option=sasautos VALUE ; run; Option Value Information For SAS Option SASAUTOS Value: ( "!sasroot\.... " "!sasroot\....\testauto“ ) How option value set: Config File Config file name: C:\SASv9\tmp\SASv9-1068.cfg << Version 9.3 INSERT and APPEND SAS Options Some options support adding to the option value using INSERT and APPEND Example: Config File contains: -Append AUTOEXEC myconfigAUTO.sas Command line contains: -Append AUTOEXEC mycmdAUTO.sas Result: myconfigAuto.sas mycmdAUTO.sas Insert and Append Options Proc Options LISTINSERTAPPEND; run; Core options: INSERT and APPEND AUTOEXEC CMPLIB FMTSEARCH MAPS SASAUTOS SASHELP Identifies AUTOEXEC… Identify previously… List of catalogs to… Location of maps for… Search list for autocall… Location of the… Proc Options – Value Keyword Proc Options Option=AUTOEXEC VALUE; Value ('!mydir\twoAuto.sas‘ '!mydir\twoAuto.sas‘) How option value set: Config File Value Inserted: '!mydir\twoAuto.sas' Config file name: U:\config2.cfg How option value set: Config File Value Inserted: '!mydir\oneAuto.sas' Config file name: C:\MySAS\ConfigDNT.cfg Expand Environment Variables Expansion of environment variables in the physical name …same support that we saw earlier with the GETOPTION function Proc Options Option=SASHELP EXPAND ; Without Expand: myval = ("!sasroot\sas… With Expand: myval = ("C:\SASv9\sas…. Restricted Options Proc Options LISTRESTRICT; /* CAN restrict */ Proc Options RESTRICT; /* IS restricted */ 3 Configuration 2 SAS 1 Site File Configuration Command Restricted File Restricted Options Output Proc Options LISTRESTRICT; run; Your Site Administrator can restrict the ability to modify the following Portable Options: APPLETLOC ... BUFNO BUFSIZE ... CGOPTIMIZE ... COMAMID Location of Java applets Number of buffers for each SAS data set Size of buffer for page of SAS data set Control code generation optimization Specifies the communication access…. Saving and Loading Option Values Procedures OptSave and OptLoad What options cannot be saved? Session startup options Password options Proc Optsave Data=WORK.saveopts; NOTE: The data set …. has 262 observations and 2 variables. Proc Optload Data=WORK.saveopts; Verbose Option – Old Style sas -verbose ==== Processed Configuration File(s) ==== C:\SASv9\tmp\SASv9-5776.cfg ==== Environment Variable Options ==== <none> Option ====== MAPS Value ===== "!sasroot\sasgen\....en\maps" SASAUTOS "!sasroot\sas\.....\auto\en" Verbose Option – New for 9.3 sas -verbose --------------------------------------------------------------Options specified on the command line: --------------------------------------------------------------SASHOST = C:\....dll DMS….. --------------------------------------------------------------Options specified in the config file C:\SASv9\… --------------------------------------------------------------SASAUTOS = ( !sasroot\....) SASHELP= ( !sasroot\....) Acknowledge and Question Bravo to my fellow portable and host developers, testers and writers who collaborate to bring SAS system options to customers. Questions? SAS Options – Versatile Players in the Game of SAS