Preserving your SAS Environment in a Non-Persistent World. A Detailed Guide to PROC PRESENV. Steven Gross, Wells Fargo, Irving, TX
|
|
- Tobias Byrd
- 5 years ago
- Views:
Transcription
1 Preserving your SAS Environment in a Non-Persistent World A Detailed Guide to PROC PRESENV Steven Gross, Wells Fargo, Irving, TX ABSTRACT For Enterprise Guide users, one of the challenges often faced is doing large development in a non-persistent environment. A non-persistent environment is one in which the connection to the SAS server on the grid is disconnected after an extended period of idle time. This period could be hours or even, in some cases, as little as 30 minutes. Usually, when a SAS connection is terminated, all work datasets, LIBNAME references, macro variables and system settings are permanently lost. So, if a developer is in the midst of writing code, one step at a time, and has created numerous work datasets, macro variables, or non-permanent formats, if a session is involuntarily closed, all of that good work is lost. The only way (up until now) of restoring the environment was to re-execute the code up from the very beginning, up until the last written complete step. If, as is very common today in the world of BIG DATA, we are dealing with large work datasets, or very long code, this can possibly represent a significant investment of time, and can be a great source of frustration. INTRODUCTION Starting with SAS 9.4, a new procedure, called PRESENV, is now available which will store the current environment, including all work datasets, any compiled macro code, the values of any macro variables, and all temporary formats, as is, and enable it to be restored to a new SAS session at a later time. This paper will describe the use of the PRESENV system option and PRESENV procedure, in a practical, chronological sequence. The first section will describe what is required to preserve the environment. Afterwards, the next section will describe the steps needed to restore the environment once a new EG session is established.
2 I. USING PROC PRESNEV to PRESEVERE THE SAS ENVIRONMENT In order to save the SAS environment as is, only four simple pieces of code need to be added to any program being developed: For our purposes a simple SAS program, named presenv_example.sas will be used: options presenv; %let pgmname=presenv_example.sas; data work.cars; set sashelp.cars; proc summary data=cars nway; class make type; var msrp; output out=cars_mean(drop=_type freq_) mean(msrp)=avg_price; proc format; value cost low = 'Inexpensive' = 'Moderate' high = 'Expensive'; data cars_mean_ftmd; set cars_mean; budget=put(avg_price,cost.); libname bkuploc '/directory1/directory2/directory3/tmpbkup/'; filename restore /directory1/directory2/directory3/restoration_pgm.sas'; proc presenv permdir=bkuploc sascode=restore show_comments;
3 Explanation of Program Statements Required The PRESENV system option is required to enable PROC PRESENV to preserve the current SAS Environment. When the PRESENV option is set, SAS begins to collect the data that is needed to preserve the environment. Data is collected until either the NOPRESENV option is set or the SAS session ends. You can enable and disable the collection of data at any time during a SAS session. When NOPRESENV is set, data collection is suspended, but not discarded. The following elements of a SAS session are saved: All WORK library data sets, formats and catalogs global statement values macro variable values system option values LIBNAME points to the storage location where SAS will copy the contents of the WORK library when preserving the current SAS EG environment. Caution: This libref should never point to a storage location containing any other data, since prior to storing the SAS WORK datasets and catalogs, SAS will delete all of the contents of this library. Filename references the name and location of the code automatically created by SAS to restore the preserved environment. PROC PRESENV Initiates the preservation process. PERMDIR=libref specifies the location where the entire contents of the WORK library are written. SASCODE=fileref specifies the location where SAS will automatically write the program used to restore the environment. Optional Argument: SHOW_COMMENTS displays all global statements. Redundant global statements are commented out. If this option is not used, then the global statements are suppressed. Usage: During development, a programmer could leave the procedure PRSENV as the last executable step within the code while it is being developed.
4 Execution of PROC PRESENV When the PROC PRESENV contained in the above code is executed, the following log file NOTES are produced: WARNING: No matching members in directory. NOTE: PROCEDURE DATASETS used (Total process time): 0.01 seconds 0.01 seconds NOTE: Deleting BKUPLOC.CARS (memtype=data). NOTE: Deleting BKUPLOC.CARS_MEAN (memtype=data). NOTE: Deleting BKUPLOC.CARS_MEAN_FTMD (memtype=data). NOTE: Deleting BKUPLOC.FORMATS (memtype=catalog). NOTE: Deleting BKUPLOC.SASGOPT (memtype=catalog). NOTE: Deleting BKUPLOC.SASMAC1 (memtype=catalog). NOTE: PROCEDURE DATASETS used (Total process time): 0.03 seconds 0.01 seconds NOTE: Copying WORK.CARS to BKUPLOC.CARS (memtype=data). NOTE: There were 428 observations read from the data set WORK.CARS. NOTE: The data set BKUPLOC.CARS has 428 observations and 15variables. NOTE: Copying WORK.CARS_MEAN to BKUPLOC.CARS_MEAN (memtype=data). NOTE: There were 114 observations read from the data set WORK.CARS_MEAN. NOTE: The data set BKUPLOC.CARS_MEAN has 114 observations and 3 variables. NOTE: Copying WORK.CARS_MEAN_FTMD to BKUPLOC.CARS_MEAN_FTMD (memtype=data). NOTE: There were 114 observations read from the data set WORK.CARS_MEAN_FTMD. NOTE: The data set BKUPLOC.CARS_MEAN_FTMD has 114 observations and 4 variables. NOTE: Copying WORK.FORMATS to BKUPLOC.FORMATS (memtype=catalog). NOTE: Copying WORK.REGSTRY to BKUPLOC.REGSTRY (memtype=itemstor). NOTE: Copying WORK.SASGOPT to BKUPLOC.SASGOPT (memtype=catalog). NOTE: Copying WORK.SASMAC1 to BKUPLOC.SASMAC1 (memtype=catalog). NOTE: PROCEDURE COPY used (Total process time): 0.08 seconds
5 Explanation of Log File The very first action taken by PROC PRESENV is to prepare the location referenced by the libref in the PERMDIR statement, by deleting all of its contents. Note: Either or will be produced, but not both. If this is the very first execution of PROC PRESENV which references this location, its contents are empty, and there is nothing to delete. In this case, the log file will only contain the following: WARNING: No matching members in directory. If however, this is a subsequent execution of PROC PRESENV, and SAS has already previously copied datasets from the WORK Library here, they will need to be refreshed. To do so, SAS will delete the entire contents of the directory prior to performing another copy from the WORK Library here. WARNING: In either case, SAS will attempt to delete the entire contents of this directory. Therefore, it extremely critical that the library referenced by PERMDIR statement in the PRESENV procedure should never, under any circumstances, point to an existing location where any critical permanent data is stored. Instead, it should always be a location which is used only for the distinct purpose of saving the work datasets required by SAS to restore the environment. User created WORK data sets; temporary formats, CATALOGS and the contents of WORK.REGISTRY, WORK.SASGOPT, and WORK.SASMAC are copied to the location specified by the libref used in the PERMDIV statement of PROC PRESENV. Upon completion of the PRESENV procedure, this location now contains the following:
6 II. RESTORING THE SAS ENVIRONMENT SAS has made the restoration process exceedingly simple. Once a new EG session is established, the only action required by the developer is to execute the code which was automatically created by SAS and stored in the location referenced by filename in the SASCODE= statement of the PROC PRESENV procedure When the restoration_pgm.sas program is executed, SAS datasets which were copied in the previous session from the WORK Library to the library specified in the PRESENV procedure (bkuploc) are now copied back to the WORK library, and are ready to be used. The value of all previously defined macro variables and system options are also restored, and all macros, both system and user written, are recompiled. After executing the restoration_pgm.sas, the original development program, my_orig_pgm.sas can be reloaded back into EG, and development can now resume from where it was left off. The Restoration Source Code Created by PROC PRESENV OPTIONS presenv; LIBNAME BKUPLOC '/em_data1/ls_uat/em_data1/tds/admin/sasdata/tmpbkup/'; FILENAME RESTORE '/em_data1/ls_uat/em_data1/tds/admin/sas_code/restoration_pgm.sas'; %let saved_options=options %sysfunc(getoption(source)) %sysfunc(getoption(notes)) %sysfunc(getoption(obs,keyword)) %sysfunc(getoption(firstobs,keyword)); options obs=max firstobs=1; proc sql; create table _data_ as select distinct memname from dictionary.catalogs where libname='bkuploc' and memtype='catalog'; quit; data _null_; set; call execute( cats('proc catalog force c=bkuploc.',memname, '; copy out=work.',memname,'; quit;') ); proc delete; proc copy in=bkuploc out=work mt=data; quit;
7 data _null_; call symput('pgmname','/em_data1/ls_uat/em_data1/tds/admin/sas_code/presenv_example.sas' ); call symput('sasworklocation','222f6f70742f f726b2f f776f726b F F F776F726B F F22'X); call symput('_clientapp',' e 'x); call symput('_clientappabrev','eg' ); call symput('_clientmachine',' 'x); call symput('_clientprocessflowname',' f c6f7727'x); call symput('_clientprojectname',' e762e 'x); call symput('_clientprojectpath','272f656d5f f6c735f f656d5f f F41646D696E2F F436F64652F E762E 'X); call symput('_clienttasklabel',' e765f d706c6527'x); call symput('_clientuserid',' 'x); call symput('_clientusername',' f73732c e27'x); call symput('_clientversion','27372e e322e 'x); call symput('_eg_workspaceinit','1' ); call symput('_sashostname',' e77656c6c f2e636f6d27'x); call symput('_sasprogramfile','272f656d5f f6c735f f656d5f f F41646D696E2F F436F64652F E765F D706C652E 'X); call symput('_sasservername',' 'x); call symput('_metauser','u573687' ); call symput('afdsid','0' ); call symput('afdsname',trimn(' ')); call symput('aflib',trimn(' ')); call symput('afstr1',trimn(' ')); call symput('afstr2',trimn(' ')); call symput('fspbdv',trimn(' ')); options _last_=work.cars_mean_ftmd; One of the important things to note about the contents of the restoration program- restoration_pgm.sas is that it contains very little code from the original program presenv_example.sas, other that the LIBNAME associated with the PERMDIR statement and the FILEREF associated with the SASCODE statement of PROC PRESENV. All other SAS code statements found in restoration_pgm.sas are directly related to restoring the environment, and the original contents of the WORK library. For this reason, it is critical the original program, presenv_example.sas, be repeatedly saved as additional code is added by the developer.
8 Explanation of the Restore Program Statements: Re-assigns any LIBNAME and FILEREF statements used in the program containing PROC PRESENV. Minimally, the LIBNAME referenced in the PERMDIR statement and the FILEREF in the SASCODE statement need to be reassigned, so that they can be properly referenced within the restoration program itself. Reestablishes any system options used in the previous session. Determines the names of any CATALOGS which have been backed up to the PERMDIR location and places them into WORK.DATA1 Copies all macros and formats listed in WORK.DATA1 from the PERMDIV LIBNAME location, back into the WORK library Deletes WORK.DATA1 Copy all members with a member type of DATA from PERMDIR LIBNAME location to the WORK Library Restores all system and user macro variable values Reassign WORK.CARS_MEAN_FTMD as the last used dataset (last) WORK.CARS_MEAN_FTMD Log File Created From The Execution of the Restoration Program Upon execution of the above restoration program, the following log messages are produced: (for the purposes of brevity, the source code statements are not presented, as they are available above) NOTE: Libref BKUPLOC was successfully assigned as follows: Engine: V9 Physical Name: /em_data1/ls_uat/em_data1/tds/admin/sasdata/tmpbkup NOTE: Table WORK.DATA1 created, with 2 rows and 1 columns. NOTE: PROCEDURE SQL used (Total process time): NOTE: There were 2 observations read from the data set WORK.DATA1. NOTE: DATA statement used (Total process time): 0.02 seconds
9 0.01 seconds NOTE: CALL EXECUTE generated line. 1 + proc catalog force c=bkuploc.formats; copy out=work.formats; quit; NOTE: Copying entry COST.FORMAT from catalog BKUPLOC.FORMATS to catalog WORK.FORMATS. NOTE: PROCEDURE CATALOG used (Total process time): NOTE: Copying entry CHECKFMT.MACRO from catalog BKUPLOC.SASMAC1 to catalog WORK.SASMAC1. NOTE: Copying entry ECLIBASSIGN.MACRO from catalog BKUPLOC.SASMAC1 to catalog WORK.SASMAC1. NOTE: Copying entry ECLIBUNASSIGN.MACRO from catalog BKUPLOC.SASMAC1 to catalog WORK.SASMAC1. NOTE: Copying entry ENTERPRISEGUIDE.MACRO from catalog BKUPLOC.SASMAC1 to catalog WORK.SASMAC1. NOTE: Copying entry GETTSLVLPARAM2.MACRO from catalog BKUPLOC.SASMAC1 to catalog WORK.SASMAC1. NOTE: Copying entry _EG_CONDITIONAL_DROPDS.MACRO from catalog NOTE: Copying entry _EG_HIDENOTESANDSOURCE.MACRO from catalog NOTE: Copying entry _EG_RESTORENOTESANDSOURCE.MACRO from catalog NOTE: Copying entry _EG_WHEREPARAM.MACRO from catalog BKUPLOC.SASMAC1 to catalog WORK.SASMAC1. NOTE: Copying entry _SAS_POPCHARTSIZE.MACRO from catalog NOTE: Copying entry _SAS_PUSHCHARTSIZE.MACRO from catalog NOTE: Copying entry _SAS_VERCOMP.MACRO from catalog BKUPLOC.SASMAC1 to catalog WORK.SASMAC1. NOTE: Copying entry _SAS_VERCONDCODE.MACRO from catalog NOTE: PROCEDURE CATALOG used (Total process time): NOTE: Deleting WORK.DATA1(memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): NOTE: Copying BKUPLOC.CARS to WORK.CARS (memtype=data). NOTE: There were 428 observations read from the data set BKUPLOC.CARS. NOTE: The data set WORK.CARS has 428 observations and 15 variables. NOTE: Copying BKUPLOC.CARS_MEAN to WORK.CARS_MEAN (memtype=data).
10 NOTE: There were 114 observations read from the data set BKUPLOC.CARS_MEAN. NOTE: The data set WORK.CARS_MEAN has 114 observations and 3 variables. NOTE: Copying BKUPLOC.CARS_MEAN_FTMD to WORK.CARS_MEAN_FTMD (memtype=data). NOTE: There were 114 observations read from the data set BKUPLOC.CARS_MEAN_FTMD. NOTE: The data set WORK.CARS_MEAN_FTMD has 114 observations and 4 variables. NOTE: Copying BKUPLOC._PRODSAVAIL to WORK._PRODSAVAIL (memtype=data). NOTE: There were 8 observations read from the data set BKUPLOC._PRODSAVAIL. NOTE: The data set WORK._PRODSAVAIL has 8 observations and 6 variables. NOTE: PROCEDURE COPY used (Total process time): A careful examination of the log shows that SAS is restoring the environment by performing a series of copies from the bkuploc to the WORK LIBRARY. Upon completion, all previously created WORK datasets are again accessible. Formats have been restored, and the macro code and variable values can be used again. In short, everything that is needed to resume development from the point where it was stopped is now once again available. Once the restoration program has been executed, the only remaining step is to open the original development program and continue where coding was previously left off. CONCLUSION SAS has provided a relatively simple way to preserve your EG session and operate in an environment where your EG session my not be persistent. It is also important to note that even if your environment is persistent, other events may cause you to lose connectivity to the SAS server from your local machine, such as an automatic reboot. In that event, PROC PRESENV might be used simply overnight, as a precautionary measure. Other situations might be entirely voluntary, such as a vacation, or a plan to take a break for an extended period of time. Regardless of the reason, there are probably many practical situations in which PROC PRESENV can be extremely useful, and provide an added layer of stability to a very dynamic work environment.
11 Contact Information Steven Gross Business Consultant, Wells Fargo Technology and Data Services Wells Fargo Commercial Capital Credit Risk Modeling COE 5000 Riverside Drive, Suite 300 East, Irving, TX Office: (469) Cell: Acknowledgements Flexibility by Design: A Look at New and Updated System Options in SAS 9.4, Jan Squillace, SAS Technical Support, Cary, NC Further Reading PRESENV Procedure Base SAS 9.4 Procedures Guide, Seventh Edition SAS Institute 2017 Notices SAS is a registered trademark of SAS Institute Inc, in the U.S. and other countries
ABSTRACT INTRODUCTION THE GENERAL FORM AND SIMPLE CODE
Paper SA06 Painless Extraction: Options and Macros with PROC PRESENV Keith Fredlund, MS (candidate) Grand Valley State University, Allendale, Michigan; Thinzar Wai, MS (candidate) Grand Valley State University,
More informationStoring and Reusing Macros
101 CHAPTER 9 Storing and Reusing Macros Introduction 101 Saving Macros in an Autocall Library 102 Using Directories as Autocall Libraries 102 Using SAS Catalogs as Autocall Libraries 103 Calling an Autocall
More informationUsing SAS/SHARE More Efficiently
Using More Efficiently by Philip R Holland, Holland Numerics Ltd, UK Abstract is a very powerful product which allow concurrent access to SAS Datasets for reading and updating. However, if not used with
More informationSAS Data Libraries. Definition CHAPTER 26
385 CHAPTER 26 SAS Data Libraries Definition 385 Library Engines 387 Library Names 388 Physical Names and Logical Names (Librefs) 388 Assigning Librefs 388 Associating and Clearing Logical Names (Librefs)
More informationFSEDIT Procedure Windows
25 CHAPTER 4 FSEDIT Procedure Windows Overview 26 Viewing and Editing Observations 26 How the Control Level Affects Editing 27 Scrolling 28 Adding Observations 28 Entering and Editing Variable Values 28
More informationUsing the SQL Editor. Overview CHAPTER 11
205 CHAPTER 11 Using the SQL Editor Overview 205 Opening the SQL Editor Window 206 Entering SQL Statements Directly 206 Entering an SQL Query 206 Entering Non-SELECT SQL Code 207 Creating Template SQL
More informationThe DATA Statement: Efficiency Techniques
The DATA Statement: Efficiency Techniques S. David Riba, JADE Tech, Inc., Clearwater, FL ABSTRACT One of those SAS statements that everyone learns in the first day of class, the DATA statement rarely gets
More informationA simplistic approach to Grid Computing Edmonton SAS Users Group. April 5, 2016 Bill Benson, Enterprise Data Scienc ATB Financial
A simplistic approach to Grid Computing Edmonton SAS Users Group April 5, 2016 Bill Benson, Enterprise Data Scienc ATB Financial Grid Computing The Basics Points to Cover: Benefits of Grid Computing Server
More informationSAS Visual Analytics Environment Stood Up? Check! Data Automatically Loaded and Refreshed? Not Quite
Paper SAS1952-2015 SAS Visual Analytics Environment Stood Up? Check! Data Automatically Loaded and Refreshed? Not Quite Jason Shoffner, SAS Institute Inc., Cary, NC ABSTRACT Once you have a SAS Visual
More informationUncommon Techniques for Common Variables
Paper 11863-2016 Uncommon Techniques for Common Variables Christopher J. Bost, MDRC, New York, NY ABSTRACT If a variable occurs in more than one data set being merged, the last value (from the variable
More informationPosters. Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA. Paper
Paper 223-25 Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA ABSTRACT As part of its effort to insure that SAS Software is useful to its users, SAS Institute
More informationDeveloping Data-Driven SAS Programs Using Proc Contents
Developing Data-Driven SAS Programs Using Proc Contents Robert W. Graebner, Quintiles, Inc., Kansas City, MO ABSTRACT It is often desirable to write SAS programs that adapt to different data set structures
More informationMoving and Accessing SAS 9.2 Files
Moving and Accessing SAS 9.2 Files The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2008. Moving and Accessing SAS 9.2 Files. Cary, NC: SAS Institute Inc. Moving and
More informationCreating and Executing Stored Compiled DATA Step Programs
465 CHAPTER 30 Creating and Executing Stored Compiled DATA Step Programs Definition 465 Uses for Stored Compiled DATA Step Programs 465 Restrictions and Requirements 466 How SAS Processes Stored Compiled
More informationMoving and Accessing SAS. 9.1 Files
Moving and Accessing SAS 9.1 Files The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2004. Moving and Accessing SAS 9.1 Files. Cary, NC: SAS Institute Inc. Moving and
More informationUsing Different Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse
Paper DM-01 Using Different Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse Abstract Ben Cochran, The Bedford Group, Raleigh, NC Often SAS users need to access
More informationAn Introduction to SAS/SHARE, By Example
Paper AD01 An Introduction to SAS/SHARE, By Example Larry Altmayer, U.S. Census Bureau, Washington, DC ABSTRACT SAS/SHARE software is a useful tool for allowing several users to access and edit the same
More informationBI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI
Paper BI09-2012 BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI ABSTRACT Enterprise Guide is not just a fancy program editor! EG offers a whole new window onto
More informationA Long-Time SAS Programmer Learns New Tricks
Paper SAS637-2017 A Long-Time SAS Programmer Learns New Tricks Lisa Horwitz, SAS Institute Inc. ABSTRACT When a large and important project with a strict deadline hits your desk, it s easy to revert to
More informationA Long-Time SAS Programmer Learns New Tricks. DASUG Presentation by Lisa Horwitz, October 20, 2017
A Long-Time SAS Programmer Learns New Tricks DASUG Presentation by Lisa Horwitz, October 20, 2017 Presenter Lisa Horwitz, SAS Lisa Horwitz is Partner Program Manager in the Global Alliances and Channels
More informationABSTRACT MORE THAN SYNTAX ORGANIZE YOUR WORK THE SAS ENTERPRISE GUIDE PROJECT. Paper 50-30
Paper 50-30 The New World of SAS : Programming with SAS Enterprise Guide Chris Hemedinger, SAS Institute Inc., Cary, NC Stephen McDaniel, SAS Institute Inc., Cary, NC ABSTRACT SAS Enterprise Guide (with
More informationDifferent Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse
Different Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse Ben Cochran, The Bedford Group, Raleigh, NC Abstract Often SAS users need to access data from non- SAS
More informationA Methodology for Truly Dynamic Prompting in SAS Stored Processes
SESUG 2015 Paper AD-172 A Methodology for Truly Dynamic Prompting in SAS Stored Processes Haikuo Bian, Regions Bank; Carlos Jimenez, Regions Bank; David Maddox, Regions Bank ABSTRACT Dynamic prompts in
More informationLocking SAS Data Objects
59 CHAPTER 5 Locking SAS Data Objects Introduction 59 Audience 60 About the SAS Data Hierarchy and Locking 60 The SAS Data Hierarchy 60 How SAS Data Objects Are Accessed and Used 61 Types of Locks 62 Locking
More informationSAS File Management. Improving Performance CHAPTER 37
519 CHAPTER 37 SAS File Management Improving Performance 519 Moving SAS Files Between Operating Environments 520 Converting SAS Files 520 Repairing Damaged Files 520 Recovering SAS Data Files 521 Recovering
More informationAPPENDIX 4 Migrating from QMF to SAS/ ASSIST Software. Each of these steps can be executed independently.
255 APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software Introduction 255 Generating a QMF Export Procedure 255 Exporting Queries from QMF 257 Importing QMF Queries into Query and Reporting 257 Alternate
More informationSAS 101. Based on Learning SAS by Example: A Programmer s Guide Chapter 21, 22, & 23. By Tasha Chapman, Oregon Health Authority
SAS 101 Based on Learning SAS by Example: A Programmer s Guide Chapter 21, 22, & 23 By Tasha Chapman, Oregon Health Authority Topics covered All the leftovers! Infile options Missover LRECL=/Pad/Truncover
More informationPaper DB2 table. For a simple read of a table, SQL and DATA step operate with similar efficiency.
Paper 76-28 Comparative Efficiency of SQL and Base Code When Reading from Database Tables and Existing Data Sets Steven Feder, Federal Reserve Board, Washington, D.C. ABSTRACT In this paper we compare
More informationHow to Create Data-Driven Lists
Paper 9540-2016 How to Create Data-Driven Lists Kate Burnett-Isaacs, Statistics Canada ABSTRACT As SAS programmers we often want our code or program logic to be driven by the data at hand, rather than
More informationSAS/FSP 9.2. Procedures Guide
SAS/FSP 9.2 Procedures Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2008. SAS/FSP 9.2 Procedures Guide. Cary, NC: SAS Institute Inc. SAS/FSP 9.2 Procedures
More informationOptimizing System Performance
243 CHAPTER 19 Optimizing System Performance Definitions 243 Collecting and Interpreting Performance Statistics 244 Using the FULLSTIMER and STIMER System Options 244 Interpreting FULLSTIMER and STIMER
More informationMigration to SAS Grid: Steps, Successes, and Obstacles for Performance Qualification Script Testing
PharmaSUG 2017 - Paper AD16 Migration to SAS Grid: Steps, Successes, and Obstacles for Performance Qualification Script Testing Amanda Lopuski, Chiltern, King of Prussia, PA Yongxuan Mike Tan, Chiltern,
More informationSubmitting Code in the Background Using SAS Studio
ABSTRACT SAS0417-2017 Submitting Code in the Background Using SAS Studio Jennifer Jeffreys-Chen, SAS Institute Inc., Cary, NC As a SAS programmer, how often does it happen that you would like to submit
More informationTweaking your tables: Suppressing superfluous subtotals in PROC TABULATE
ABSTRACT Tweaking your tables: Suppressing superfluous subtotals in PROC TABULATE Steve Cavill, NSW Bureau of Crime Statistics and Research, Sydney, Australia PROC TABULATE is a great tool for generating
More informationJourney to the center of the earth Deep understanding of SAS language processing mechanism Di Chen, SAS Beijing R&D, Beijing, China
Journey to the center of the earth Deep understanding of SAS language processing Di Chen, SAS Beijing R&D, Beijing, China ABSTRACT SAS is a highly flexible and extensible programming language, and a rich
More informationGoing Under the Hood: How Does the Macro Processor Really Work?
Going Under the Hood: How Does the Really Work? ABSTRACT Lisa Lyons, PPD, Inc Hamilton, NJ Did you ever wonder what really goes on behind the scenes of the macro processor, or how it works with other parts
More informationDBLOAD Procedure Reference
131 CHAPTER 10 DBLOAD Procedure Reference Introduction 131 Naming Limits in the DBLOAD Procedure 131 Case Sensitivity in the DBLOAD Procedure 132 DBLOAD Procedure 132 133 PROC DBLOAD Statement Options
More informationUsing Maps with the JSON LIBNAME Engine in SAS Andrew Gannon, The Financial Risk Group, Cary NC
Paper 1734-2018 Using Maps with the JSON LIBNAME Engine in SAS Andrew Gannon, The Financial Risk Group, Cary NC ABSTRACT This paper serves as an introduction to reading JSON data via the JSON LIBNAME engine
More informationSAS Catalogs. Definition. Catalog Names. Parts of a Catalog Name CHAPTER 32
479 CHAPTER 32 SAS Catalogs Definition 479 Catalog Names 479 Parts of a Catalog Name 479 Accessing Information in Catalogs 480 Tools for Managing Catalogs 480 User Profile Catalog 481 Definition 481 How
More informationPresentation Goals. Now that You Have Version 8, What Do You Do? Top 8 List: Reason #8 Generation Data Sets. Top 8 List
Presentation Goals Now that You Have Version 8, What Do You Do? Michael L. Davis Bassett Consulting Services, Inc. September 13, 2000 highlight incentives to switch consider migration strategies identify
More informationThe SERVER Procedure. Introduction. Syntax CHAPTER 8
95 CHAPTER 8 The SERVER Procedure Introduction 95 Syntax 95 Syntax Descriptions 96 Examples 101 ALLOCATE SASFILE Command 101 Syntax 101 Introduction You invoke the SERVER procedure to start a SAS/SHARE
More informationQUEST Procedure Reference
111 CHAPTER 9 QUEST Procedure Reference Introduction 111 QUEST Procedure Syntax 111 Description 112 PROC QUEST Statement Options 112 Procedure Statements 112 SYSTEM 2000 Statement 114 ECHO ON and ECHO
More informationA Practical Introduction to SAS Data Integration Studio
ABSTRACT A Practical Introduction to SAS Data Integration Studio Erik Larsen, Independent Consultant, Charleston, SC Frank Ferriola, Financial Risk Group, Cary, NC A useful and often overlooked tool which
More informationIntroduction to the SAS System
Introduction to the SAS System The SAS Environment The SAS Environment The SAS Environment has five main windows The SAS Environment The Program Editor The SAS Environment The Log: Notes, Warnings and
More informationImporting CSV Data to All Character Variables Arthur L. Carpenter California Occidental Consultants, Anchorage, AK
PharmaSUG 2017 QT02 Importing CSV Data to All Character Variables Arthur L. Carpenter California Occidental Consultants, Anchorage, AK ABSTRACT Have you ever needed to import data from a CSV file and found
More informationUtilizing the Stored Compiled Macro Facility in a Multi-user Clinical Trial Setting
Paper AD05 Utilizing the Stored Compiled Macro Facility in a Multi-user Clinical Trial Setting Mirjana Stojanovic, Duke University Medical Center, Durham, NC Dorothy Watson, Duke University Medical Center,
More informationET01. LIBNAME libref <engine-name> <physical-file-name> <libname-options>; <SAS Code> LIBNAME libref CLEAR;
ET01 Demystifying the SAS Excel LIBNAME Engine - A Practical Guide Paul A. Choate, California State Developmental Services Carol A. Martell, UNC Highway Safety Research Center ABSTRACT This paper is a
More informationUsing SAS Files CHAPTER 3
55 CHAPTER 3 Using SAS Files Introduction to SAS Files 56 What Is a SAS File? 56 Types of SAS Files 57 Using Short or Long File Extensions in SAS Libraries 58 SAS Data Sets (Member Type: Data or View)
More informationGetting Classy: A SAS Macro for CLASS Statement Automation
Getting Classy: A SAS Macro for CLASS Statement Automation ABSTRACT When creating statistical models that include multiple covariates, it is important to address which variables are considered categorical
More informationCHAPTER 7 Using Other SAS Software Products
77 CHAPTER 7 Using Other SAS Software Products Introduction 77 Using SAS DATA Step Features in SCL 78 Statements 78 Functions 79 Variables 79 Numeric Variables 79 Character Variables 79 Expressions 80
More informationLoading Data. Introduction. Understanding the Volume Grid CHAPTER 2
19 CHAPTER 2 Loading Data Introduction 19 Understanding the Volume Grid 19 Loading Data Representing a Complete Grid 20 Loading Data Representing an Incomplete Grid 21 Loading Sparse Data 23 Understanding
More informationSAS Viya 3.1 FAQ for Processing UTF-8 Data
SAS Viya 3.1 FAQ for Processing UTF-8 Data Troubleshooting Tips for Processing UTF-8 Data (Existing SAS Code) What Is the Encoding of My Data Set? PROC CONTENTS displays information about the data set
More informationApril 4, SAS General Introduction
PP 105 Spring 01-02 April 4, 2002 SAS General Introduction TA: Kanda Naknoi kanda@stanford.edu Stanford University provides UNIX computing resources for its academic community on the Leland Systems, which
More informationIntroduction to the SAS Macro Facility
Introduction to the SAS Macro Facility Uses for SAS Macros The macro language allows for programs that are dynamic capable of selfmodification. The major components of the macro language include: Macro
More informationSyntax Conventions for SAS Programming Languages
Syntax Conventions for SAS Programming Languages SAS Syntax Components Keywords A keyword is one or more literal name components of a language element. Keywords are uppercase, and in reference documentation,
More informationCompute Service: A RESTful Approach to the SAS Programming Environment
Paper SAS2083-2018 Compute Service: A RESTful Approach to the SAS Programming Environment Jason Spruill and Joseph Henry, SAS Institute Inc., Cary, NC ABSTRACT SAS Viya provides an open architecture that
More informationBest Practice for Creation and Maintenance of a SAS Infrastructure
Paper 2501-2015 Best Practice for Creation and Maintenance of a SAS Infrastructure Paul Thomas, ASUP Ltd. ABSTRACT The advantage of using metadata to control and maintain data and access to data on databases,
More informationDATA Step Debugger APPENDIX 3
1193 APPENDIX 3 DATA Step Debugger Introduction 1194 Definition: What is Debugging? 1194 Definition: The DATA Step Debugger 1194 Basic Usage 1195 How a Debugger Session Works 1195 Using the Windows 1195
More informationA Guided Tour Through the SAS Windowing Environment Casey Cantrell, Clarion Consulting, Los Angeles, CA
A Guided Tour Through the SAS Windowing Environment Casey Cantrell, Clarion Consulting, Los Angeles, CA ABSTRACT The SAS system running in the Microsoft Windows environment contains a multitude of tools
More informationProcedures. PROC CATALOG CATALOG=<libref.>catalog <ENTRYTYPE=etype> <KILL>; CONTENTS <OUT=SAS-data-set> <FILE=fileref;>
355 CHAPTER 19 Procedures SAS Procedures under Windows 355 CATALOG 355 CIMPORT 356 CONTENTS 357 CONVERT 358 CPORT 361 DATASETS 361 OPTIONS 363 PMENU 364 PRINTTO 365 SORT 367 SAS Procedures under Windows
More informationUsing SAS Files. Introduction to SAS Files, Data Libraries, and Engines CHAPTER 4
83 CHAPTER 4 Using SAS Files Introduction to SAS Files, Data Libraries, and Engines 83 Types of SAS Files 84 SAS Data Files (Member Type DATA) 85 SAS Data Views (Member Type VIEW) 85 Filename Extensions
More informationA SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY
PharmaSUG 2014 - Paper BB14 A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY ABSTRACT Clinical Study
More informationSAS/ASSIST Software Setup
173 APPENDIX 3 SAS/ASSIST Software Setup Appendix Overview 173 Setting Up Graphics Devices 173 Setting Up Remote Connect Configurations 175 Adding a SAS/ASSIST Button to Your Toolbox 176 Setting Up HTML
More informationSAS System Powers Web Measurement Solution at U S WEST
SAS System Powers Web Measurement Solution at U S WEST Bob Romero, U S WEST Communications, Technical Expert - SAS and Data Analysis Dale Hamilton, U S WEST Communications, Capacity Provisioning Process
More informationPurchase this book at
Chapter 2 2 Creating Simple Stored Processes BASE SAS gives programmers the exponential ability to query and report about data from their desktops; however, this limitation means that a user can access
More informationTaming a Spreadsheet Importation Monster
SESUG 2013 Paper BtB-10 Taming a Spreadsheet Importation Monster Nat Wooding, J. Sargeant Reynolds Community College ABSTRACT As many programmers have learned to their chagrin, it can be easy to read Excel
More informationUpgrading Software and Firmware
APPENDIXB This appendix describes how to upgrade or reinstall the Cisco PAM server software, desktop client software, and Gateway module firmware. Contents Upgrade Notes for Release 1.1.0, page B-2 Upgrading
More informationData Quality Review for Missing Values and Outliers
Paper number: PH03 Data Quality Review for Missing Values and Outliers Ying Guo, i3, Indianapolis, IN Bradford J. Danner, i3, Lincoln, NE ABSTRACT Before performing any analysis on a dataset, it is often
More informationTips & Tricks. With lots of help from other SUG and SUGI presenters. SAS HUG Meeting, November 18, 2010
Tips & Tricks With lots of help from other SUG and SUGI presenters 1 SAS HUG Meeting, November 18, 2010 2 3 Sorting Threads Multi-threading available if your computer has more than one processor (CPU)
More informationKnow Thy Data : Techniques for Data Exploration
Know Thy Data : Techniques for Data Exploration Montreal SAS Users Group Wednesday, 29 May 2018 13:50-14:30 PM Andrew T. Kuligowski, Charu Shankar AGENDA Part 1- Easy Ways to know your data Part 2 - Powerful
More informationPaper CC16. William E Benjamin Jr, Owl Computer Consultancy LLC, Phoenix, AZ
Paper CC16 Smoke and Mirrors!!! Come See How the _INFILE_ Automatic Variable and SHAREBUFFERS Infile Option Can Speed Up Your Flat File Text-Processing Throughput Speed William E Benjamin Jr, Owl Computer
More information%MAKE_IT_COUNT: An Example Macro for Dynamic Table Programming Britney Gilbert, Juniper Tree Consulting, Porter, Oklahoma
Britney Gilbert, Juniper Tree Consulting, Porter, Oklahoma ABSTRACT Today there is more pressure on programmers to deliver summary outputs faster without sacrificing quality. By using just a few programming
More informationRunning Multiple SAS/AF Applications in a Single SAS Session Mark L. Schneider, SAS Institute Inc., Cary, NC
Running Multiple SAS/AF Applications in a Single SAS Session Mark L. Schneider, SAS Institute Inc., Cary, NC ABSTRACT For years internal users of Institute tools have been struggling with the startup time
More informationProcedure for Stamping Source File Information on SAS Output Elizabeth Molloy & Breda O'Connor, ICON Clinical Research
Procedure for Stamping Source File Information on SAS Output Elizabeth Molloy & Breda O'Connor, ICON Clinical Research ABSTRACT In the course of producing a report for a clinical trial numerous drafts
More informationTRIM Integration with Data Protector
TRIM Integration with Data Protector Table of Contents Introduction... 3 Prerequisites... 3 TRIM Internals... 3 TRIM s Data Organization... 3 TRIM s Architecture... 4 Implications for Backup... 4 Sample
More informationSESUG Paper AD A SAS macro replacement for Dynamic Data Exchange (DDE) for use with SAS grid
SESUG Paper AD-109-2017 A macro replacement for Dynamic Data Exchange (DDE) for use with grid ABSTRACT Saki Kinney, David Wilson, and Benjamin Carper, RTI International The ability to write to specific
More information10 The First Steps 4 Chapter 2
9 CHAPTER 2 Examples The First Steps 10 Invoking the Query Window 11 Changing Your Profile 11 ing a Table 13 ing Columns 14 Alias Names and Labels 14 Column Format 16 Creating a WHERE Expression 17 Available
More informationA Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN
Paper 045-29 A Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN ABSTRACT: PROC MEANS analyzes datasets according to the variables listed in its Class
More informationEXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT)
EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT) DESCRIPTION: This example shows how to combine the data on respondents from the first two waves of Understanding Society into
More informationSAS/ACCESS Interface to R/3
9.1 SAS/ACCESS Interface to R/3 User s Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2004. SAS/ACCESS 9.1 Interface to R/3: User s Guide. Cary, NC: SAS Institute
More information2. Referencing Files and Sepng Op+ons. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming» 47
2. Referencing Files and Sepng Op+ons GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming» 47 Defining SAS libraries To reference a permanent SAS file you: - Assign a name (libref)
More informationSAS Scalable Performance Data Server 4.45
SAS Scalable Performance Data Server 4.45 User s Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2008. SAS Scalable Performance Data Server
More informationMake it a Date! Setting up a Master Date View in SAS
SCSUG Paper 19-2017 Make it a Date! Setting up a Master Date View in SAS Crystal Carel, MPH¹ ² ¹STEEEP Analytics, Baylor Scott & White Health, Dallas, TX ²Northern Illinois University, College of Health
More informationABSTRACT. Paper CC-031
Paper CC-031 Using Functions SYSFUNC and IFC to Conditionally Execute Statements in Open Code Ronald J. Fehd, Centers for Disease Control and Prevention, Atlanta, GA, USA ABSTRACT Audience Keywords Information
More informationAn Introduction to SAS/FSP Software Terry Fain, RAND, Santa Monica, California Cyndie Gareleck, RAND, Santa Monica, California
An Introduction to SAS/FSP Software Terry Fain, RAND, Santa Monica, California Cyndie Gareleck, RAND, Santa Monica, California ABSTRACT SAS/FSP is a set of procedures used to perform full-screen interactive
More informationKnit Perl and SAS Software for DIY Web Applications
Knit Perl and SAS Software for DIY Web Applications Abstract Philip R Holland, Consultant, Holland Numerics Limited, UK If your organisation develops a web-based SAS application for 30+ users, then the
More informationExploring DICTIONARY Tables and SASHELP Views
Exploring DICTIONARY Tables and SASHELP Views Kirk Paul Lafler, Software Intelligence Corporation Abstract SAS users can quickly and conveniently obtain useful information about their SAS session with
More informationSAS. Studio 4.1: User s Guide. SAS Documentation
SAS Studio 4.1: User s Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2016. SAS Studio 4.1: User s Guide. Cary, NC: SAS Institute Inc. SAS
More informationUsing SAS Files CHAPTER 3
77 CHAPTER 3 Using SAS Files Introduction to SAS Files 78 What Is a SAS File? 78 Types of SAS Files 79 Using Short or Long File Extensions in SAS Libraries 80 SAS Data Sets (Member Type: Data or View)
More informationUseful Tips from my Favorite SAS Resources
Useful Tips from my Favorite SAS Resources Marje Fecht Senior Partner, Prowerk Consulting Copyright 2017 Prowerk Consulting 1 You need an answer QUICK! I don t want to run the whole program if the input
More informationCleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA
Cleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA ABSTRACT Removing duplicate observations from a data set is not as easy as it might
More informationUsing a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC
AP06 Using a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC ABSTRACT By default, SAS compiles and stores all macros into the WORK
More informationThe Three I s of SAS Log Messages, IMPORTANT, INTERESTING, and IRRELEVANT William E Benjamin Jr, Owl Computer Consultancy, LLC, Phoenix AZ.
ABSTRACT Paper TT_14 The Three I s of SAS Log Messages, IMPORTANT, INTERESTING, and IRRELEVANT William E Benjamin Jr, Owl Computer Consultancy, LLC, Phoenix AZ. I like to think that SAS error messages
More informationData Grids in Business Rules, Decisions, Batch Scoring, and Real-Time Scoring
Paper SAS605-2017 Data Grids in Business Rules, Decisions, Batch Scoring, and Real-Time Scoring Carl Sommer, Chris Upton, and Ernest Jessee, SAS Institute Inc. ABSTRACT Users want more power. SAS delivers.
More informationA Quick and Gentle Introduction to PROC SQL
ABSTRACT Paper B2B 9 A Quick and Gentle Introduction to PROC SQL Shane Rosanbalm, Rho, Inc. Sam Gillett, Rho, Inc. If you are afraid of SQL, it is most likely because you haven t been properly introduced.
More informationPaper CT-16 Manage Hierarchical or Associated Data with the RETAIN Statement Alan R. Mann, Independent Consultant, Harpers Ferry, WV
Paper CT-16 Manage Hierarchical or Associated Data with the RETAIN Statement Alan R. Mann, Independent Consultant, Harpers Ferry, WV ABSTRACT For most of the history of computing machinery, hierarchical
More informationCHAPTER 7 Examples of Combining Compute Services and Data Transfer Services
55 CHAPTER 7 Examples of Combining Compute Services and Data Transfer Services Introduction 55 Example 1. Compute Services and Data Transfer Services Combined: Local and Remote Processing 56 Purpose 56
More informationUsing GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China
PharmaSUG China 2015 - Paper PO71 Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China One of the reasons that SAS is widely used as the
More informationDivide and Conquer Writing Parallel SAS Code to Speed Up Your SAS Program
SESUG 2016 Paper PA-265 Divide and Conquer Writing Parallel SAS Code to Speed Up Your SAS Program Doug Haigh, SAS Institute Inc., Cary, NC ABSTRACT Being able to split SAS processing over multiple SAS
More informationStatements. Previous Page Next Page. SAS 9.2 Language Reference: Dictionary, Third Edition. Definition of Statements. DATA Step Statements
Page 1 of 278 Previous Page Next Page SAS 9.2 Language Reference: Dictionary, Third Edition Statements Definition of Statements DATA Step Statements Global Statements ABORT Statement ARRAY Statement Array
More information