+ All Categories
Home > Documents > As08 Revised

As08 Revised

Date post: 18-Nov-2014
Category:
Upload: chapm1943
View: 441 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
35
1 Using a SAS Catalog to Develop and Manage a SAS® Project David D. Chapman US Census Bureau
Transcript
Page 1: As08 Revised

1

Using a SAS Catalog to Develop and

Managea SAS® Project

David D. ChapmanUS Census Bureau

Page 2: As08 Revised

2

What I Will Talk About

Catalogs / Types of EntriesBasic SAS statementsControlling Program flowManaging CatalogsTesting New CodeCreating and Using Catalog EntriesDocumenting the Catalog Code

Page 3: As08 Revised

3

Advantages of Catalogs

All Code One PlaceEasy to MoveManage Using SAS ProceduresEasy to Test Code Before UseInteractive or BatchAutomated Documentation

Page 4: As08 Revised

4

SAS CATALOG

Four Level NameLIBNAME.CATALOG.ELEMENT.TYPE SUGI28.PAPER110.PROGRAM1.LOG

LIBNAMECATALOGELEMENT NAMEENTRY TYPE

Page 5: As08 Revised

5

KEY SAS STATEMENTS

FILENAME statement with catalog option

%INCLUDE STATEMENT/ SOURCE2

Page 6: As08 Revised

6

FILENAME STATEMENT

Associates an alias with either a specific catalog entry or a complete catalog

FILENAME DATA_READ CATALOG "SUGI28.PAPER110.READ.SOURCE";

FILENAME CODE CATALOG "SUGI28.PAPER110”;

Page 7: As08 Revised

7

%INCLUDE STATEMENT

Inserts and executes SAS statements and data lines in the file associated with the statement.

The “/SOURCE2” option displays the contents of the file.

Works with files, specific entries of catalog, or entire catalog

Page 8: As08 Revised

8

%INCLUDE STATEMENT- File

%INCLUDE “C:\MY_CODE.SAS”/SOURCE2

Page 9: As08 Revised

9

%INCLUDE STATEMENT-Entry

LIBNAME SUGI28 “C:\SUGI28”;FILENAME PGM1 CATALOG

SUGI28.PAPER110.PGM_1.SOURCE”;%INCLUDE PGM1 / SOURCE2

Page 10: As08 Revised

10

%INCLUDE STATEMENT-Catalog

LIBNAME SUGI28 “C:\SUGI28”;FILENAME CODE CATALOG “SUGI28.PAPER110”;%INCLUDE CODE(PGM_1) /

SOURCE2%INCLUDE CODE(PGM_2) /

SOURCE2

Page 11: As08 Revised

11

CONTROLING PROGRAM FLOW

Source Entry: SUGI28.PAPER110.CONTROL.SOURCE

LIBNAME SUGI28 “C:\SUGI28”; FILENAME MY_APP CATALOG “SUGI28.PAPER110”; %INCLUDE MY_APP(START) /SOURCE2; %INCLUDE MY_APP(PGM_1) /SOURCE2; %INCLUDE MY_APP(PGM_2) /SOURCE2; %INCLUDE MY_APP(STOP) /SOURCE2; RUN;

Page 12: As08 Revised

12

MANAGING THE CATALOG

Contents of the CatalogMoving Catalog on same

computerMoving Catalog to different

computer

Page 13: As08 Revised

13

PROC CATALOG

List Contents of CatalogCopy all or part of entriesRename or Delete EntriesChange Description of Catalog

Page 14: As08 Revised

14

Contents of the CATALOG-Output

Contents of Catalog SUGI28.PAPER110

# Name Type Create Date Modified Date ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

1 COMPANY CATAMS 06MAR2003:13:21:03 06MAR2003:13:21:03 2 RGN FORMAT 06MAR2003:13:52:11 06MAR2003:13:52:11 3 REGION FORMATC 06MAR2003:13:47:17 06MAR2003:13:47:17 4 PROGRAM LOG 06MAR2003:14:34:40 06MAR2003:14:34:40 5 PROGRAM OUTPUT 06MAR2003:14:34:40 06MAR2003:14:34:40 6 READ SOURCE 06MAR2003:12:42:44 06MAR2003:12:42:44

Page 15: As08 Revised

15

Copy All Entries to New Catalog

PROC CATALOG CAT=SUGI28.PAPER110;COPY OUT=NESUG2003.PAPER254;RUN;

Page 16: As08 Revised

16

MOVE CATALOG

Move Catalog to different computer

PROC UPLOAD INCAT = SUGI28.PAPER110 OUTCAT= EPBA51.PAPER110;RUN;

Page 17: As08 Revised

17

TESTING NEW CODE

CATNAME StatementLogically concatenates multiple

catalogsUsed to insert test or revised code

without touching the productioncode

CATNAME LIB.CAT (LIB1.CAT1 LIB2.CAT2);

Page 18: As08 Revised

18

CATNAME STATEMENT

CATNAME SUGI.PAPER110A (SUGI.TEST SUGI.PAPER110);

FILENAME CONTROL CATALOG "SUGI.PAPER110A";RUN;

%INCLUDE CONTROL(PROGRAM_1) / SOURCE2;RUN;

Page 19: As08 Revised

19

DOCUMENTING THE CATALOG

AUTOMATING THE PROCESSCapture contents of PROC

CATALO G using ODSUse ODS captured data to

create macro variablesUse macro variables to write

the contents of source elements to a PDF file

Page 20: As08 Revised

20

CAPTURE PROC CATALOG OUTPUT USING ODS

ODS OUTPUT CATALOG_RANDOM =NESUG_2009_LIST ;

PROC CATALOG CAT=NESUG.NESUG_2009 ;

CONTENTS;QUIT;

Page 21: As08 Revised

21

ASSIGN CATALOG ELEMENT NAMES TO MACRO

VARIABLESDATA _NULL_;SET NESUG_2009_LIST END=LAST;IF TYPE=“SOURCE” THEN DO;

CNT+1; CNT_C=“L”||LEFT(PUT,CNT,2.)); CALL SYMPUT(CNT_C,OBJNAME);END;IF LAST=1 THEN DO;

CALL SYMPUT (“CAT_COUNT”,CNT);END; RUN;

Page 22: As08 Revised

22

PRINT CATALOG TO PDF FILE

%MACRO PRINT; PROC PRINT; RUN; %DO ELEMENT=1 %TO &CAT_COUNT; FILENAME CODELIB CAT “NESUG.NESUG_2009.&&L..&ELEMENT..SOURCE”; DATA PRINT; INFILE CODELIB; INPUT CODE $ 1-50; RUN; PROC PRINT DATA=PRINT;RUN; %END; %MEND;

Page 23: As08 Revised

PRINT OUTPUT to PDF File

ODS FILE=“C:\DOCUMENT.PDF”

%PRINT;

ODS PDF CLOSE;

23

Page 24: As08 Revised

24

CATALOG ENTRY TYPES

SOURCECATAMS (DATA)FORMATMACRO (SOURCE)LOG & OUTPUTPROCEDURE SPECIFIC

Page 25: As08 Revised

25

SOURCE ELEMENT

Similar to SAS program files, ASCII, or Text files

Used for ordinary SAS codeProcedures

Page 26: As08 Revised

26

Creating a Source Entry

InteractivePROGRAM EDITORFile MenuSave as ObjectOpen as Object

BatchData _NULL_Procedure

Page 27: As08 Revised

27

CATAMS ELEMENT

Element holds dataUsed to store information in SAS

data sets and Program Parameters

Page 28: As08 Revised

28

Writing Format to Catalog-pgm

proc format library=NESUG.NESUG_2009;value $region

'1'='NorthEast' '2'='NorthEast' '3'='MidWest' . . . '8'='West' '9'='West';run;

Page 29: As08 Revised

29

Using Format in Catalog-PGM

options fmtsearch = (NESUG.NESUG_2009);

proc print data=test;format division $region12. ;run;

Page 30: As08 Revised

30

Macro(Source)

Macro code can be stored in catalog SOURCE entries an accessed from the catalog through the autocall facility

Name of the macro and source entry containing code must be the same name.

Page 31: As08 Revised

31

WRITING THE LOG AND OUTPUT FILES TO CATALOG

PROC PRINTTO NEWLOG=SUGI28.PAPER110.PROGRAM.LOGPRINT=SUGI28.PAPER110.PROGRAM.OUTPUT;RUN;-----------------------------------%INCLUDE PAPER110(PGM_1)/SOURCE2;RUN;PROC PRINTTO;RUN;----------------------------------

Page 32: As08 Revised

32

PROCEDURE SPECIFIC

PROC REPORTSQL QUERY/WINDOWSAS/GRAPHOthers

Page 33: As08 Revised

33

CONCLUSION-1

SAS Catalogs allow the data step programmer to ;

Keep all code in one placeWork both interactively and in

batchEasily move code to another

directory or computerSimplify testing of new code

Page 34: As08 Revised

34

CONCLUSION-2

Automate documentaionFlexible and easy to use

Page 35: As08 Revised

35

About the Speaker

Speaker David D. ChapmanCompany Economic Planning and

Coordination Division U.S. Census BureauLocation Washington, DC 20233Telephone (301) 763-6535Email

[email protected]


Recommended