Chapter 1: INTRODUCTION TO SAS
- INTRODUCTION
- NEED FOR SAS
- WHO USES SAS
- WHAT IS SAS?
- OVERVIEW OF BASE SAS SOFTWARE
- DATA MANAGEMENT FACILITY
- STRUCTURE OF SAS DATASET
- SAS PROGRAM
- PROGRAMMING LANGUAGE
- ELEMENTS OF THE SAS LANGUAGE
- RULES FOR SAS STATEMENTS
- RULES FOR MOST SAS NAMES
- SPECIAL RULES FOR VARIABLE NAMES
- TYPES OF VARIABLES
- DATA ANALYSIS AND REPORTING UTILITIES
- TRADITIONAL OUTPUT
- WAYS TO RUN SAS PROGRAMS
- SAS WINDOWING ENVIRONMENT
- NONINTERACTIVE MODE
- BATCH MODE
- INTERACTIVE LINE MODE
- RUNNING PROGRAMS IN THE SAS WINDOWING ENVIRONMENT
Chapter 2: HOW SAS WORKS
- WRITING YOUR FIRST SAS PROGRAM
- A SIMPLE PROGRAM TO READ RAW DATA AND PRODUCE A REPORT
- ENHANCING THE PROGRAM
- MORE ON COMMENT STATEMENTS
- INTERNAL PROCESSING IN SAS
- HOW SAS WORKS
- THE COMPILATION PHASE
- THE EXECUTION PHASE
- PROCESSING A DATA STEP: A WALKTHROUGH
- CREATING THE INPUT BUFFER AND THE PROGRAM DATA VECTOR
- WRITING AN OBSERVATION TO THE SAS DATA SET
- FOUR TYPES OF SAS LIBRARIES
- SAS LIBRARIES
- WORK LIBRARY
- SASHELP LIBRARY
- SASUSER LIBRARY
Chapter 3: READING RAW DATA INTO SAS
- WHAT IS RAW DATA
- DEFINITIONS
- DATA VALUES
- NUMERIC VALUE
- CHARACTER VALUE
- STANDARD DATA
- NONSTANDARD DATA
- NUMERIC DATA
- CHARACTER DATA
- CHOOSING AN INPUT STYLE
- LIST INPUT
- MODIFIED LIST INPUT
- COLUMN INPUT
- FORMATTED INPUT
- NAMED INPUT
- INSTREAM DATA
- CREATING MULTIPLE RECORDS FROM SINGLE INPUT ROW
- READING DATA FROM EXTERNAL FILES
- READING BLANK SEPARATED VALUES (LIST OR FREE FORM DATA):
- READING RAW DATA SEPARATED BY COMMAS (.CSV FILES):
- READING IN RAW DATA SEPARATED BY TABS (.TXT FILES):
- USING INFORMATS WITH LIST INPUT
- SUPPLYING AN INFORMAT STATEMENT WITH LIST INPUT
- USING LIST INPUT WITH EMBEDDED DELIMITERS
- READING RAW DATA THAT ARE ALIGNED IN COLUMNS:
- METHOD 1: COLUMN INPUT
- METHOD 2: FORMATTED INPUT
- USING MORE THAN ONE INPUT STATEMENT: THE SINGLE TRAILING @
- READING COLUMN DATA THAT IS ON MORE THAN ONE LINE
- MIXED-STYLE INPUT:
- INFILE OPTIONS FOR SPECIAL SITUATIONS
- FLOWOVER
- MISSOVER
- TRUNCOVER
- PAD
- USING LRECL TO READ VERY LONG LINES OF RAW DATA
- CHECKING YOUR DATA AFTER IT HAS BEEN READ INTO SAS
Chapter 4: READING DATA FROM A DATASET
- INTRODUCTION
- SET STATEMENT OVERVIEW
- AUTOMATIC VARIABLES IN SAS
- INTERLEAVE MULTIPLE SAS DATA SETS
- COMBINE MULTIPLE SAS DATA SETS
- CREATING & MODIFYING VARIABLES
- CREATING MULTIPLE DATASETS IN A SINGLE DATA-STEP
- SUBSETTING OBSERVATIONS
- CONDITIONAL SAS STATEMENTS
- LOGICAL AND SPECIAL OPERATORS
- THE SAS SUPERVISOR AND THE SET STATEMENT
- EFFICIENCY AND THE SET STATEMENT
- KNOW YOUR DATA
- SET STATEMENT DATA SET OPTIONS
- DROP AND KEEP OPTIONS
- RENAME OPTION
- FIRSTOBS AND OBS OPTIONS
- IN OPTION -
- WHERE OPTION -
- OTHER SET STATEMENT OPTIONS
- END OPTION
- KEY OPTION
- NOBS OPTION
- POINT OPTION
- DO LOOPS AND THE SET STATEMENT
- INTRODUCTION TO RETAIN STATEMENT
- CARRY OVER VALUES FROM ONE OBSERVATION TO ANOTHER
- COMPARE VALUES ACROSS OBSERVATIONS
- ASSIGN INITIAL VALUES
- DETERMINING COLUMN ORDER IN OUTPUT DATASET
- SAS SYSTEM OPTIONS
Chapter 5: READING DATA FROM A DATASET
- INPUT SAS DATA SET FOR EXAMPLE
- SELECTING OBSERVATIONS FOR A NEW SAS DATA SET
- DELETING OBSERVATIONS BASED ON A CONDITION
- ACCEPTING OBSERVATIONS BASED ON A CONDITION
- COMPARING THE DELETE AND SUBSETTING IF STATEMENTS
- METHODS OF CREATING NEW DATA SETS WITH A SUBSET
- SUBSETTING RECORDS FROM AN EXTERNAL FILE WITH A SUBSETTING IF STATEMENT
- SUBSETTING OBSERVATIONS IN A DATA STEP WITH A WHERE STATEMENT
- SUBSETTING OBSERVATIONS IN A PROC STEP WITH A WHERE STATEMENT
- SUBSETTING OBSERVATIONS IN PROC SQL
- DIFFERENCE BETWEEN IF AND WHERE
Chapter 6: SAS INFORMATS AND FORMATS
- OVERVIEW
- USING SAS INFORMATS
- INPUT STATEMENT
- INPUT FUNCTION
- INPUTN AND INPUTC FUNCTIONS
- ATTRIB AND INFORMAT STATEMENTS
- USING SAS FORMATS
- FORMAT STATEMENT IN PROCEDURES
- PUT STATEMENT
- PUT FUNCTION
- PUTN AND PUTC FUNCTIONS
- BESTw. Format
- ADDITIONAL COMMENTS
Chapter 7: SAS FUNCTIONS
- CATEGORIES OF FUNCTIONS
- SAS CHARACTER FUNCTIONS
- FUNCTIONS THAT CHANGE THE CASE OF CHARACTERS
- UPCASE
- LOWCASE
- PROPCASE
- FUNCTIONS THAT REMOVE CHARACTERS FROM STRINGS
- FUNCTION: COMPBL
- FUNCTION: COMPRESS
- FUNCTIONS THAT SEARCH FOR CHARACTERS
- FUNCTION: ANYALNUM
- FUNCTION: ANYALPHA
- FUNCTION: ANYDIGIT
- FUNCTION: ANYPUNCT
- FUNCTION: ANYSPACE
- FUNCTION: NOTALNUM
- FUNCTION: NOTALPHA
- FUNCTION: NOTDIGIT
- FUNCTION: NOTUPPER
- FUNCTIONS THAT SEARCH STRINGS
- FIND AND FINDC
- INDEX, INDEXC, AND INDEXW
- FUNCTIONS TO VERIFY DATA
- FUNCTION VERIFY
- FUNCTIONS THAT EXTRACT PARTS OF STRINGS
- FUNCTION: SUBSTR (ON THE LEFT-HAND SIDE OF THE EQUAL SIGN)
- FUNCTION: SUBSTRN
- FUNCTIONS THAT JOIN TWO OR MORE STRINGS TOGETHER
- FUNCTION: CAT
- FUNCTION: CATS
- FUNCTION: CATT
- FUNCTION: CATX
- FUNCTIONS THAT REMOVE BLANKS FROM STRINGS
- FUNCTION: LEFT
- FUNCTION: RIGHT
- FUNCTION: TRIM
- FUNCTION: TRIMN
- FUNCTION: STRIP
- FUNCTIONS THAT COMPARE STRINGS
- FUNCTION: COMPARE
- FUNCTIONS THAT DIVIDE STRINGS INTO "WORDS"
- FUNCTION: SCAN
- FUNCTION: SCANQ
- FUNCTIONS THAT SUBSTITUTE LETTERS OR WORDS IN STRINGS
- FUNCTION: TRANSLATE
- FUNCTION: TRANWRD
- FUNCTIONS THAT COMPUTE THE LENGTH OF STRINGS
- FUNCTION: LENGTH
- FUNCTION: LENGTHC
- FUNCTION: LENGTHM
- FUNCTION: LENGTHN
- FUNCTIONS THAT COUNT THE NUMBER OF LETTERS OR SUBSTRINGS IN A STRING
- FUNCTION: COUNT
- FUNCTION: COUNTC
- MISCELLANEOUS STRING FUNCTIONS
- FUNCTION: MISSING
- FUNCTION: REPEAT
- FUNCTION: REVERSE
- SAS DATE AND TIME FUNCTIONS
- INTRODUCTION
- WHAT IS A SAS DATE AND TIME LITERAL?
- DATE AND TIME FUNCTIONS
- FUNCTINS TO CREATE DATE AND TIME VALUES
- FUNCTIONS TO TAKIE DATETIME VALUES APART
- FUNCTIONS TO GET QUARTER ,YEAR OR DAY OF THE DATE
- FUNCTIONS THAT WORK WITH INTERVALS
- USING FORMATS FOR DATE AND TIME
- SYSTEM OPTIONS FORDATE AND TIME
Chapter 8: AN INTRODUCTION TO ARRAYS AND ARRAY PROCESSING
- WHY DO WE NEED ARRAYS?
- BASIC ARRAY CONCEPTS
- ARRAY STATEMENT
- ARRAY REFERENCES
- VARIABLE NAME ARRAY REFERENCE
- USING ARRAY INDEXES
- ONE DIMENSION ARRAYS
- MULTI-DIMENSION ARRAYS
- TEMPORARY ARRAYS
- SORTING ARRAYS
- Determining Array Bounds: LBOUND and HBOUND Functions
- WHEN TO USE ARRAYS
- COMMON ERRORS AND MISUNDERSTANDINGS
- INVALID INDEX RANGE
- FUNCTION NAME AS AN ARRAY NAME
- ARRAY REFERENCED IN MULTIPLE DATA STEPS, BUT DEFINED IN ONLY ONE
Chapter 9: BY - GROUP PROCESSING
- DEFINITIONS FOR BY-GROUP PROCESSING
- BY-GROUP PROCESSING
- BY VALUE
- BY GROUP
- FIRST.VARIABLE AND LAST.VARIABLE
- MODIFYING SAS DATA SETS: EXAMPLES.
- INVOKING BY-GROUP PROCESSING
- PREPROCESSING INPUT DATA FOR BY-GROUP PROCESSING
- SORTING OBSERVATIONS FOR BY-GROUP PROCESSING
- INDEXING FOR BY-GROUP PROCESSING
- HOW THE DATA STEP IDENTIFIES BY GROUPS
- PROCESSING OBSERVATIONS IN A BY GROUP
- HOW SAS DETERMINES FIRST.VARIABLE AND LAST.VARIABLE
- PROCESSING BY-GROUPS IN THE DATA STEP
- OVERVIEW
- PROCESSING BY-GROUPS CONDITIONALLY
- DATA NOT IN ALPHABETIC OR NUMERIC ORDER
- DATA GROUPED BY FORMATTED VALUES
Chapter 10: OVERVIEW OF METHODS FOR COMBINING SAS DATA SETS
- DEFINITIONS
- CONCATENATING
- INTERLEAVING
- ONE-TO- ONE READING OR ONE-TO-ONE MERGING
- MATCH-MERGING
- UPDATING
- MODIFYING
- DEFINITIONS FOR READING, COMBINING, AND MODIFYING SAS DATA SETS
- READING A SAS DATA SET
- COMBINING SAS DATA SETS
- MODIFYING SAS DATA SETS
- OVERVIEW OF TOOLS
- READING SAS DATA SETS
- READING A SINGLE SAS DATA SET
- READING FROM MULTIPLE SAS DATA SETS
- COMBINING SAS DATA SETS: BASIC CONCEPTS
- ONE-TO-ONE
- ONE-TO-MANY AND MANY-TO-ONE
- MANY-TO-MANY
- ACCESS METHODS: SEQUENTIAL VERSUS DIRECT
- SEQUENTIAL ACCESS
- DIRECT ACCESS
- ONE-TO-ONE READING
- DATA STEP PROCESSING DURING A ONE-TO-ONE READING
- ONE-TO-ONE MERGING
- MATCH-MERGING
- UPDATING WITH THE UPDATE AND THE MODIFY STATEMENTS :
- DEFINITIONS
- SYNTAX OF THE UPDATE STATEMENT
- SYNTAX OF THE MODIFY STATEMENT -
- UPDATING WITH NONMATCHED OBSERVATIONS, MISSING VALUES, AND NEW VARIABLES -
- USING AN INDEX WITH THE MODIFY STATEMENT
Chapter 11: SAS PROCEDURES
- INTRODUCTION
- THE ANATOMY OF A PROC
- THE PROC STATEMENT
- TITLE AND FOOTNOTE STATEMENTS
- BY STATEMENT
- LABEL STATEMENT
- FORMAT STATEMENT
- RUN OR QUIT STATEMENT
- DESCRIPTION OF DATA USED IN REPORTS
- SAS REPORTING PROCEDURES
- PROCS FOR ALL THAT DETAIL
- USING PROC PRINT
- USING PROC SQL
- PROC REPORT
- PROCS THAT SUMMARIZE
- USING PROC CHART
- USING PROC FREQ
- USING PROC MEANS
- USING PROC UNIVARIATE
- INTRODUCTION TO PROC TABULATE
- DATA MANIPULATION AND MANAGEMENT PROCEDURE
- PROC SORT
- PROC DATASETS
- PROC FORMAT
- PROC CONTENTS
- OTHER IMPORTANT PROCS
- PROC TRANSPOSE
- DEFINITIONS
- PROC PRINTTO
- COMPARE PROCEDURE
- PROC APPEND
- HOW TO IMPORT AN EXCEL FILE INTO SAS
Chapter 12: INTRODUCTION TO PROC SQL
- INTRODUCTION
- WHY LEARN PROC SQL?
- SELECT STATEMENT
- THE SELECT STATEMENT SYNTAX
- A SIMPLE PROC SQL
- A COMPLEX PROC SQL
- LIMITING INFORMATION ON THE SELECT
- CREATING NEW VARIABLES
- THE CALCULATED OPTION ON THE SELECT
- USING LABELS AND FORMATS
- THE CASE EXPRESSION ON THE SELECT
- ADDITIONAL SELECT STATEMENT CLAUSES
- REMERGING
- REMERGING FOR TOTALS
- CALCULATING PERCENTAGE
- SORTING THE DATA IN PROC SQL
- SORT ON NEW COLUMN
- SUBSETTING USING THE WHERE
- INCORRECT WHERE CLAUSE
- WHERE ON COMPUTED COLUMN
- SELECTION ON GROUP COLUMN
- USE HAVING CLAUSE
- CREATING NEW TABLES
- JOINING DATASETS USING PROC SQL
- INNER JOIN
- JOINING THREE OR MORE TABLES
- OUTER JOINS
- INCLUDING NONMATCHING ROWS WITH THE RIGHT OUTER JOIN
- SELECTING ALL ROWS WITH THE FULL OUTER JOIN
- CONCATENATING QUERY RESULTS
Chapter 13: SAS FINANCE PROCEDURES
- PROC LOAN
- PROC TIMESERIES
- PROC FORECASTING
- PROC UPLOAD
- PROC DOWNLOAD
- PROC EXPAND
- PROC UCM
- PROC CLUSTER
- PROC DISTANCE
- PROC TREE
Chapter 14: AN INTRODUCTION TO SAS MACROS
- INTRODUCTION
- SAS MACRO OVERVIEW
- TRADITIONAL SAS PROGRAMMING
- THE SAS MACRO LANGUAGE
- MACRO LANGUAGE COMPONENTS
- MACRO VARIABLES
- MACRO STATEMENTS
- MACRO PROCESSOR FLOW
- AUTOMATIC MACRO VARIABLES
- MACRO DEBUGGING OPTIONS
- WHAT IS A MACRO?
- DEFINING AND USING MACROS
- POSITIONAL MACRO PARAMETERS
- KEYWORD MACRO PARAMETERS
- CONDITIONAL MACRO COMPILATION
- THE %DO STATEMENT
- SAS DATA STEP INTERFACES
Chapter 15: THE OUTPUT DELIVERY SYSTEM (ODS)
- INTRODUCTION
- CREATING VARIOUS TYPES OF REPORTS LISTING OUTPUT
- OTHER DESTINATIONS
- HTML
- PDF AND POSTSCRIPT
- RTF FILES
- MICROSOFT EXCEL
- ADDING STYLE TO YOUR REPORTS
- LOCATE EXISTING STYLES
- ODS STYLE= OPTION
- CUSTOMIZE YOUR REPORTS
- ODS SELECT; AND ODS EXCLUDE;
- OTHER CUSTOMIZATIONS
- ODS PROCLABEL= ;
- ODS PROCTITLE; AND ODS NOPROCTITLE;
- ADVANCED TECHNIQUES
- ODS DOCUMENT
- PROC TEMPLATE
Chapter 16: INTRODUCTION TO DIAGNOSING AND AVOIDING ERRORS
- INTRODUCTION
- UNDERSTANDING HOW THE SAS SUPERVISOR CHECKS A JOB
- UNDERSTANDING HOW SAS PROCESSES ERRORS
- DISTINGUISHING TYPES OF ERRORS .SAS RECOGNIZES FOUR KINDS OF ERRORS:
- SYNTAX ERRORS
- EXECUTION-TIME ERRORS
- DATA ERRORS
- SEMANTIC ERRORS
- DIAGNOSING ERRORS
- DIAGNOSING SYNTAX ERRORS
- DIAGNOSING DATA ERRORS
USING A QUALITY CONTROL CHECKLIST
|