BBMベースボールカード 30th Anniversaryas07 吉田正尚 (オ) as08 千賀滉大 (ソ) as09 有原航平 (日) as10 佐々木朗希 (ロ) as11 山川穂高
As08 Revised
description
Transcript of As08 Revised
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