as08 revised

Post on 18-Nov-2014

444 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

1

Using a SAS Catalog to Develop and

Managea SAS® Project

David D. ChapmanUS Census Bureau

2

What I Will Talk About

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

3

Advantages of Catalogs

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

4

SAS CATALOG

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

LIBNAMECATALOGELEMENT NAMEENTRY TYPE

5

KEY SAS STATEMENTS

FILENAME statement with catalog option

%INCLUDE STATEMENT/ SOURCE2

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”;

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

8

%INCLUDE STATEMENT- File

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

9

%INCLUDE STATEMENT-Entry

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

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

10

%INCLUDE STATEMENT-Catalog

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

SOURCE2%INCLUDE CODE(PGM_2) /

SOURCE2

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;

12

MANAGING THE CATALOG

Contents of the CatalogMoving Catalog on same

computerMoving Catalog to different

computer

13

PROC CATALOG

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

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

15

Copy All Entries to New Catalog

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

16

MOVE CATALOG

Move Catalog to different computer

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

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);

18

CATNAME STATEMENT

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

FILENAME CONTROL CATALOG "SUGI.PAPER110A";RUN;

%INCLUDE CONTROL(PROGRAM_1) / SOURCE2;RUN;

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

20

CAPTURE PROC CATALOG OUTPUT USING ODS

ODS OUTPUT CATALOG_RANDOM =NESUG_2009_LIST ;

PROC CATALOG CAT=NESUG.NESUG_2009 ;

CONTENTS;QUIT;

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;

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;

PRINT OUTPUT to PDF File

ODS FILE=“C:\DOCUMENT.PDF”

%PRINT;

ODS PDF CLOSE;

23

24

CATALOG ENTRY TYPES

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

25

SOURCE ELEMENT

Similar to SAS program files, ASCII, or Text files

Used for ordinary SAS codeProcedures

26

Creating a Source Entry

InteractivePROGRAM EDITORFile MenuSave as ObjectOpen as Object

BatchData _NULL_Procedure

27

CATAMS ELEMENT

Element holds dataUsed to store information in SAS

data sets and Program Parameters

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;

29

Using Format in Catalog-PGM

options fmtsearch = (NESUG.NESUG_2009);

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

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.

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;----------------------------------

32

PROCEDURE SPECIFIC

PROC REPORTSQL QUERY/WINDOWSAS/GRAPHOthers

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

34

CONCLUSION-2

Automate documentaionFlexible and easy to use

35

About the Speaker

Speaker David D. ChapmanCompany Economic Planning and

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

david.d.chapman@census.com

top related