As a new generation of SAS® user emerges, current and prior generations of users have an extensive array of procedures, programming tools, approaches and techniques to choose from. This presentation identifies and explores the areas that are hot and not-so-hot in the world of the professional SAS user. Topics include Enterprise Guide, PROC SQL, JMP, PROC REPORT, Macro Language, ODS, DATA step programming techniques such as arrays and hashing, sasCommunity.org®, LexJansen.com, JMP®, and Output Delivery System (ODS).
3. Quick Survey
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 3
4. Presentation Objectives
The SAS What’s Hot What’s Improving
Professional Hot? Topics Not So Skills /
Hot? Expertise
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 4
5. Tables Used in Examples
Movies
Actors
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 5
6. Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 6
7. The Free Dictionary by Farlex,
defines a skill as “the proficiency,
facility, or dexterity that is acquired
or developed through training or
experience.”
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 7
8. The services and skills you plan to
offer should be geared to adding
value in an already highly
competitive marketplace.
Lafler and Shipp
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 8
9. Taking Inventory of Your Skills
• Identify the skills you currently possess
DATA/PROC step programming
Macro programming
Database design
ODS and specialized output
Web development
Technical writing
Statistical analysis
and so on . . .
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 9
10. Taking Inventory of Your Skills
• Identify the skills you currently possess
DATA/PROC step programming
Macro programming
Database design
ODS and specialized output
Web development
Technical writing
Statistical analysis
and so on . . .
• Rank each skill
Expert
Proficient
Some working knowledge
None
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 10
11. Taking Inventory of Your Skills
• Identify level of competence
Cutting edge
Competitive
Out-of-date
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 11
12. Taking Inventory of Your Skills
• Identify level of competence
Cutting edge
Competitive
Out-of-date
• Categorize skills by functional discipline
Programming
Design
Analysis
Analytics
Data Cleaning
Teaching
Documentation
Marketing
and so on . . .
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 12
13. Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 13
14. What’s
• Enterprise Guide – GUI point-and-click front-end application
• Hash Object – “Fast” table lookups, merges, and joins
• ODS – RTF, PDF, HTML, XML, and Excel Destinations and Tagsets
• PROC SQL – Queries, Tables, Views, Case Logic, Joins, Subqueries
• PROC REPORT – Detail and Summary Reporting
• Macro Language – Reusable Code and Tools
• Access SAS Environment – Dictionary Tables and SASHELP Views
• SAS/XML – Share Structured Data
• Business Intelligence (BI)
• http://support.sas.com –Technical Support, Online Documentation
• sasCommunity.org – Social Networking, Blogs, Tech Support
• SAS-L – List Serve of archived Technical Support Help
• LexJansen.com – Repository of “Published” SAS Papers
• SAS Certification – SAS Certified Professional Exams
• JMP software – Statistical and Data Visualization
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 14
15. Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 15
17. sasCommunity.org Features
• Primary user interface
• GUI look-and-feel interface
• Organized into parts
Hyperlink Keywords
Log-in and Account Links
Special-purpose Tabs
Body – Welcome, Blogger’s Corner and Forums
Special-purpose Hyperlink Icons
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 17
18. The Main Page – Dissected
Hyperlink Keywords
Special-purpose Tabs Account Log-in
Body Portion
Special-purpose Icons
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 18
19. “Quick” Popular Links – Features
• Quick access to major categories
• Each category serves as a hyperlink
• Major categories include:
Blogs on sasCommunity.org Planet
Collaborate with SAS
Events
Geographies
Opportunity Registry
Presentations
Provider’s Registry
SAS Books
User Groups
Topics
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 19
20. Popular Links
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 20
21. Bloggers Corner – Features
• Blogs created and defined by SAS users
• Found on sasCommunity.org Planet
• 31 blogs exist
• Articles (topics) are arranged alphabetically
• A partial listing of topics include:
SAS Global Forum JMP Blog
DATA steps Macro Code
The SAS Dummy PROC SQL
Statistical Analysis Consulting Study SAS Blog
Avocet Solutions ProcRun;
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 21
22. SAS Global Forum
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 22
23. Bloggers Corner
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 23
24. Upcoming Events – Features
• Information on upcoming SAS-related events
• Click on the Events keyword hyperlink
• Found in the Events category
• SAS Software related events include:
User Group meeting
Training classes
Webcasts
• Currently, 5 subcategories exist:
Audio Conferences User Group Meetings
Conferences Webcasts
Training Classes
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 24
25. Events Page
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 25
26. Groups – Staying Connected
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 26
27. Sasopedia – Features
• Virtual area where users can provide factual information
and tips on SAS Software
• Addresses Frequently Asked Questions
• Click on the Sasopedia keyword hyperlink
• Information is organized by:
Procedure
Product/Solution
Statement
Topic
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 27
28. Using the Sasopedia
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 28
29. Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 29
30. Hash Objects
• A Hash object is a data structure
• Contains an array of items that map “keys” to their
associated values
• Implemented as a DATA step construct
• Not available in PROCs
• At the end of the process the hash object is removed
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 30
31. How Hash Objects Work
• The contents of a table are read into memory once
• SAS can then repeatedly access it, as necessary
• Memory-based operations are typically faster than disk-
based operations
• Users experience faster search, table lookup and merge
(or join) operations
MOVIES Table ACTORS Table
TITLE TITLE ACTOR_LEADING ACTOR_SUPPORTING
Brave Heart Brave Heart Mel Gibson Sophie Marceau
... Christmas Vacation Chevy Chase Beverly D’Angelo
Christmas Vacation Coming to America Eddie Murphy Arsenio Hall
Coming to America ... ... ...
... ... ... ...
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 31
32. Hash Object Syntax
• The hash object is used by calling methods
• 26 known methods exist
• Basic syntax:
Name of the hash table (user-assigned)
Dot
Desired method by name
Specification to pass to the method
• Examples:
HashKey.DefineKey( );
HashKey.Find( );
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 32
33. Hash Object Methods We’ll Discuss
Method Description
ADD Adds data associated with key to hash object.
DEFINEDATA Defines data to be stored in hash object.
DEFINEDONE Specifies that all key and data definitions are complete.
DEFINEKEY Defines key variables to the hash object.
FIND Determines whether the key is stored in the hash object.
OUTPUT Creates one or more data sets containing the data in the hash object.
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 33
34. Merge with a Hash Object
data hash_match_merge;
if 0 then set actors; /* load variable properties into hash tables */
if _n_ = 1 then do;
declare Hash Titles (dataset:’actors’); /* declare the name Titles for hash */
Titles.DefineKey (‘Title’); /* identify variables to use as keys */
Titles.DefineData (‘Actor_Leading’,
‘Actor_Supporting’); /* identify columns of data */
Titles.DefineDone (); /* complete hash table definition */
end;
set movies;
if titles.find(key:title) = 0 /* lookup TITLE in MOVIES table with hash Titles */
then output;
run;
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 34
35. Merge with a Hash Object
data hash_match_merge;
if 0 then set actors; /* load variable properties into hash tables */
if _n_ = 1 then do;
declare Hash Titles (dataset:’actors’); /* declare the name Titles for hash */
Titles.DefineKey (‘Title’); /* identify variables to use as keys */
Titles.DefineData (‘Actor_Leading’,
1
‘Actor_Supporting’); /* identify columns of data */
Titles.DefineDone (); /* complete hash table definition */
end;
set movies;
if titles.find(key:title) = 0 /* lookup TITLE in MOVIES table with hash Titles */
then output;
run;
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 35
36. Merge with a Hash Object
data hash_match_merge;
2
if 0 then set actors; /* load variable properties into hash tables */
if _n_ = 1 then do;
declare Hash Titles (dataset:’actors’); /* declare the name Titles for hash */
Titles.DefineKey (‘Title’); /* identify variables to use as keys */
Titles.DefineData (‘Actor_Leading’,
‘Actor_Supporting’); /* identify columns of data */
Titles.DefineDone (); /* complete hash table definition */
end;
set movies;
if titles.find(key:title) = 0 /* lookup TITLE in MOVIES table with hash Titles */
then output;
run;
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 36
37. Merge with a Hash Object
data hash_match_merge;
if 0 then set actors; /* load variable properties into hash tables */
3 if _n_ = 1 then do;
declare Hash Titles (dataset:’actors’); /* declare the name Titles for hash */
Titles.DefineKey (‘Title’); /* identify variables to use as keys */
Titles.DefineData (‘Actor_Leading’,
‘Actor_Supporting’); /* identify columns of data */
Titles.DefineDone (); /* complete hash table definition */
end;
set movies;
if titles.find(key:title) = 0 /* lookup TITLE in MOVIES table with hash Titles */
then output;
run;
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 37
38. Merge with a Hash Object
data hash_match_merge;
if 0 then set actors; /* load variable properties into hash tables */
if _n_ = 1 then do;
declare Hash Titles (dataset:’actors’); /* declare the name Titles for hash */
Titles.DefineKey (‘Title’); /* identify variables to use as keys */
Titles.DefineData (‘Actor_Leading’,
‘Actor_Supporting’); /* identify columns of data */
Titles.DefineDone (); /* complete hash table definition */
end;
set movies;
4
if titles.find(key:title) = 0 /* lookup TITLE in MOVIES table with hash Titles */
then output;
run;
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 38
39. Merge Results with a Hash Object
Movies Actors
Hash_match_merge
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 39
40. Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 40
41. What’s Not so Hot
• SAS/ASSIST®
• SAS/FSP®
• SAS/AF®
• Screen Component Language®
• DATA _NULL_ ‒> Monospace “Custom” Reporting
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 41
42. Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 42
43. Improving Skills / Expertise
• SAS-led courses (lecture / hands-on workshops)
• Non-SAS Institute Instructor-led courses
• Self-paced computer-based training (CBT)
• Technical Support at http://support.sas.com
• Online SAS documentation in PDF and HTML format
• User-written books from SAS Press, Books by Users (BBU)
• “White” papers:
sasCommunity.org
support.sas.com
LexJansen.com
• User Group presentations and Hands-on workshops
• Webinars and other content on sasCommunity.org
• Collaborate with others (using LinkedIn and User Groups)
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 43
44. Certified Professional Exams
Three Key Areas of Certification Testing:
• SAS Programming
• Predictive Modeling
• Data Warehousing
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 44
45. SAS Programming Credentials
Two Credentials:
• SAS Certified Base Programmer Credential
SAS Base Programming Exam for SAS 9
• SAS Certified Advanced Programmer Credential
SAS Base Programming Exam for SAS 9
SAS Advanced Programming Exam for SAS 9
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 45
46. Predictive Modeling Credential
One Credential:
• SAS Predictive Modeling Using SAS Enterprise Miner 5.2
Predictive Modeling Using SAS Enterprise Miner 5.2 Exam
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 46
47. Data Warehousing Credentials
Two Credentials:
• SAS Certified Warehouse Development Specialist Credential
SAS Advanced Programming Exam for SAS 9
SAS Warehouse Technology Exam
SAS Warehouse Development Specialist Concepts Exam
• SAS Certified Warehouse Architect Credential
SAS Warehouse Technology Exam
SAS Warehouse Architect Concepts Exam
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 47
48. Conclusion
Improving The World of
Skills / the SAS
Expertise Professional
What’s
Not So
Hot?
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp
49. PROC SQL A Book for
Beyond the Basics All SAS
Using SAS Users
Kirk Paul Lafler
sas
Available at www.sas.com!
Coming Winter 2004!
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp
50. Learn how to Build,
Store and Access
Developing Custom Functions
Custom SAS® Using the FCMP
Procedure
Functions with the
FCMP Procedure
Odyssey Kirk Paul Lafler
press
Press
Coming in Winter 2004!
Coming September 2012!
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp 50
51. An Introduction
to Hash
Programming
Techniques Using
SAS® Software
Odyssey
Kirk Paul Lafler
Press
Coming in October 2012!
Coming Winter 2004!
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp
52. A Book of
SAS® Best Best Practice
Coding
Practices: Techniques and
Blueprint for Developing Examples
Maintainable Code Using
SAS Software
Odyssey Kirk Paul Lafler
press
Press
Coming Winter 2004!
in March 2013!
Copyright 2007 - 2012 by Kirk Paul Lafler and Charles Edwin Shipp
53. Thank You for Attending!
Questions?
Kirk Paul Lafler Charles Edwin Shipp
KirkLafler@cs.comPaul Lafler and Charles Edwin Shipp
Copyright 2007 - 2012 by Kirk
CharlieShipp@aol.com 53