SAS Programming for Enterprise Guide Users, Second Edition
()
About this ebook
In this pragmatic, example-driven book, author Neil Constable demonstrates how you can use SAS code to enhance the capabilities of SAS Enterprise Guide. Designed to help you gain extra value from the products you already have, SAS Programming for Enterprise Guide Users contains tips and techniques that show you a variety of features that cannot be accessed directly through the task interfaces. In all cases, techniques are shown with examples that you can try and test, plus additional exercises are included to give you more practice. The end result is more efficient and resilient use of SAS Enterprise Guide in a wider variety of business areas.
Included is a discussion of the following subject areas: the Output Delivery System, advanced formatting, macro variables and macros, advanced reporting using PROC REPORT, highlighting in reports, hyperlinking between reports and graphs, data manipulation using SQL, data manipulation using the DATA step, extended graphics.
By adding small amounts of code in key areas, SAS Enterprise Guide users can get more out of the product than the tasks reveal. Users should be familiar with the SAS Enterprise Guide user interface and tasks. No programming experience is necessary.
This book is part of the SAS Press program.
Neil Constable
Neil Constable is a Principal Education Consultant at SAS Institute in the United Kingdom, where he has worked since 2002. He applies his extensive knowledge of Base SAS, SAS Enterprise Guide, and the SAS business intelligence tools as an instructor for the programming curriculum and the business intelligence curriculum, which includes SAS Enterprise Guide courses. A frequent presenter at customer user group workshops and the UK user conferences, Neil is an Associate Member of the Institute of IT Trainers.
Related to SAS Programming for Enterprise Guide Users, Second Edition
Related ebooks
PROC SQL: Beyond the Basics Using SAS, Third Edition Rating: 0 out of 5 stars0 ratingsSAS Viya: The R Perspective Rating: 0 out of 5 stars0 ratingsSAS Viya: The Python Perspective Rating: 0 out of 5 stars0 ratingsInsightful Data Visualization with SAS Viya Rating: 0 out of 5 stars0 ratingsSAS Text Analytics for Business Applications: Concept Rules for Information Extraction Models Rating: 0 out of 5 stars0 ratingsPROC DOCUMENT by Example Using SAS Rating: 0 out of 5 stars0 ratingsPredictive Modeling with SAS Enterprise Miner: Practical Solutions for Business Applications, Third Edition Rating: 0 out of 5 stars0 ratingsSAS Certification Prep Guide: Statistical Business Analysis Using SAS9 Rating: 0 out of 5 stars0 ratingsSimulating Data with SAS Rating: 0 out of 5 stars0 ratingsFundamentals of Programming in SAS: A Case Studies Approach Rating: 0 out of 5 stars0 ratingsSmart Data Discovery Using SAS Viya: Powerful Techniques for Deeper Insights Rating: 0 out of 5 stars0 ratingsThe SAS Programmer's PROC REPORT Handbook: ODS Companion Rating: 0 out of 5 stars0 ratingsInteractive Reports in SAS® Visual Analytics: Advanced Features and Customization Rating: 0 out of 5 stars0 ratingsSAS Administration from the Ground Up: Running the SAS9 Platform in a Metadata Server Environment Rating: 5 out of 5 stars5/5SAS For Dummies Rating: 0 out of 5 stars0 ratingsSegmentation Analytics with SAS Viya: An Approach to Clustering and Visualization Rating: 0 out of 5 stars0 ratingsGetting Started with SAS Programming: Using SAS Studio in the Cloud Rating: 0 out of 5 stars0 ratingsPython for SAS Users: A SAS-Oriented Introduction to Python Rating: 0 out of 5 stars0 ratingsElementary Statistics Using SAS Rating: 0 out of 5 stars0 ratingsMachine Learning with SAS Viya Rating: 0 out of 5 stars0 ratingsCategorical Data Analysis Using SAS, Third Edition Rating: 0 out of 5 stars0 ratingsSAS Certified Specialist Prep Guide: Base Programming Using SAS 9.4 Rating: 4 out of 5 stars4/5Applied Econometrics with SAS: Modeling Demand, Supply, and Risk Rating: 5 out of 5 stars5/5Practical and Efficient SAS Programming: The Insider's Guide Rating: 0 out of 5 stars0 ratingsBusiness Analytics Using SAS Enterprise Guide and SAS Enterprise Miner: A Beginner's Guide Rating: 0 out of 5 stars0 ratingsData Quality for Analytics Using SAS Rating: 4 out of 5 stars4/5End-to-End Data Science with SAS: A Hands-On Programming Guide Rating: 0 out of 5 stars0 ratings
Enterprise Applications For You
QuickBooks 2024 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsCreating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Excel Formulas and Functions 2020: Excel Academy, #1 Rating: 4 out of 5 stars4/5QuickBooks 2023 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsScrivener For Dummies Rating: 4 out of 5 stars4/5ChatGPT Ultimate User Guide - How to Make Money Online Faster and More Precise Using AI Technology Rating: 0 out of 5 stars0 ratingsExcel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5SharePoint 2016 For Dummies Rating: 5 out of 5 stars5/5Learning Python Rating: 5 out of 5 stars5/5Bitcoin For Dummies Rating: 4 out of 5 stars4/5Notion for Beginners: Notion for Work, Play, and Productivity Rating: 4 out of 5 stars4/5Excel 2016 For Dummies Rating: 4 out of 5 stars4/5The Basics of Hacking and Penetration Testing: Ethical Hacking and Penetration Testing Made Easy Rating: 4 out of 5 stars4/5Learn Windows PowerShell in a Month of Lunches Rating: 0 out of 5 stars0 ratingsEnterprise AI For Dummies Rating: 3 out of 5 stars3/5101 Ready-to-Use Excel Formulas Rating: 4 out of 5 stars4/5Access 2019 For Dummies Rating: 0 out of 5 stars0 ratingsQuickBooks Online For Dummies Rating: 0 out of 5 stars0 ratingsExcel Formulas That Automate Tasks You No Longer Have Time For Rating: 5 out of 5 stars5/5Systems Thinking: Managing Chaos and Complexity: A Platform for Designing Business Architecture Rating: 4 out of 5 stars4/5Powerpoint 2013 Tips & Tricks Rating: 0 out of 5 stars0 ratingsMrExcel XL: The 40 Greatest Excel Tips of All Time Rating: 4 out of 5 stars4/5Using Word 2019: The Step-by-step Guide to Using Microsoft Word 2019 Rating: 0 out of 5 stars0 ratings
Reviews for SAS Programming for Enterprise Guide Users, Second Edition
0 ratings0 reviews
Book preview
SAS Programming for Enterprise Guide Users, Second Edition - Neil Constable
SAS® Programming
for Enterprise
Guide® Users
Second Edition
Neil Constable
The correct bibliographic citation for this manual is as follows: Constable, Neil. 2010. SAS® Programming for Enterprise Guide® Users, Second Edition. Cary, NC: SAS Institute Inc.
SAS® Programming for Enterprise Guide® Users, Second Edition
Copyright © 2010, SAS Institute Inc., Cary, NC, USA
ISBN 978-1-60764-528-3 (Hardcopy)
ISBN 978-1-62959-779-9 (EPUB)
ISBN 978-1-62959-780-5 (MOBI)
ISBN 978-1-60764-527-6 (PDF)
All rights reserved. Produced in the United States of America.
For a hard-copy book: No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, or otherwise, without the prior written permission of the publisher, SAS Institute Inc.
For a web download or e-book: Your use of this publication shall be governed by the terms established by the vendor at the time you acquire this publication.
The scanning, uploading, and distribution of this book via the Internet or any other means without the permission of the publisher is illegal and punishable by law. Please purchase only authorized electronic editions and do not participate in or encourage electronic piracy of copyrighted materials. Your support of others’ rights is appreciated.
U.S. Government License Rights; Restricted Rights: The Software and its documentation is commercial computer software developed at private expense and is provided with RESTRICTED RIGHTS to the United States Government. Use, duplication or disclosure of the Software by the United States Government is subject to the license terms of this Agreement pursuant to, as applicable, FAR 12.212, DFAR 227.7202-1(a), DFAR 227.7202-3(a) and DFAR 227.7202-4 and, to the extent required under U.S. federal law, the minimum restricted rights as set out in FAR 52.227-19 (DEC 2007). If FAR 52.227-19 is applicable, this provision serves as notice under clause (c) thereof and no other notice is required to be affixed to the Software or documentation. The Government’s rights in Software and documentation shall be only those set forth in this Agreement.
SAS Institute Inc., SAS Campus Drive, Cary, North Carolina 27513-2414.
September 2010
SAS® and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
Other brand and product names are trademarks of their respective companies.
To Anne, David and Tessa
for their enthusiasm, encouragement and support.
Contents
Foreword
Acknowledgments
Chapter 1 Why Do I Need to Write Code?
Introduction
A Brief History of SAS
SAS: A Complete Programming Language
SAS Enterprise Guide: A Graphical User Interface for SAS
So How Does SAS Enterprise Guide Work?
Examples of Enhancing the Generated Code
Examples of Writing Your Own Code
Summary
Chapter 2 Understanding Coding with SAS Enterprise Guide
Introduction
The Structure of a SAS Program
Writing Your Own Code: The Program Node
Using and Customizing the Program Window
The Program Node in Process Flow Diagrams
Understanding Generated Code
Complementing the Generated Code
Adding Code When a Server Is Used for the First Time
Adding Code before or after a Task or Code
Inserting Code into a Task
Using Generated Code as a Template
Summary
Exercises
Chapter 3 Getting Started
Introduction
Getting Ready to Face the World
We Know Where You Live
Formats and Functions
A Final Word on Options
Query-Free Filtering
Do It Once—Use It Often
Using Macro Variables
Using Macro Functions
ODS: The Output Delivery System
What Is ODS All About?
Making Your Output Go Where You Want
Summary
Exercises
Chapter 4 Data Manipulation Part 1: Queries
Introduction
What Is SQL?
Basic Queries: What SAS Enterprise Guide Does Already
The Query Builder Task
The Delete Data Sets and Formats Task
The Append Data Task
Indexes: Creation and Usage
Index Creation
Index Usage
Good Index, Bad Index
Updating and Validating Data
Deleting Rows
Inserting Rows
Updating
Integrity Checks
Advanced SQL Queries
Summary
Where to Look for More Information
Exercises
Chapter 5 Data Manipulation Part 2: DATA Step and Functions
Introduction
DATA Step Basics
Creating Multiple Tables
When Position Matters
SAS Functions
Summary
Where to Look for More Information
Exercises
Chapter 6 Seeing Data Differently
Introduction
Basic Formats: The Create Formats Task
Reviewing Existing Formats
Creating Picture Formats
Formatting Numbers
Formatting Dates and Times
Multilabel Formats
Linking Formats
Using Formats as Look-up Tables
Creating Informats
Summary
Where to Look for More Information
Exercises
Chapter 7 Enhancing Report Output
Introduction
More ODS
Improving Titles
Improving BY Lines
Page Numbers
Basic Formatting
Adding Hyperlinks
One-Stop Reporting
Hyperlinks Revisited
Trafficlighting
Varying Output
Alternative Output Destinations
Summary
Where to Look for More Information
Exercises
Chapter 8 Graphical Output
Introduction
SAS Enterprise Guide Graphical Output
Enhancing SAS Enterprise Guide Graphs
More Linking
Exploding Pies
Detail Pies
Extra SAS Graphical Output
Summary
Where to Look for More Information
Exercises
Chapter 9 Macros: Reusable Programming
Introduction
What Is a Macro?
Converting a Program to a Macro
Converting a Task to a Macro
Complex Prompts
Choosing Your Path
Including Macros
The Biggest Exploding Pie
Summary
Where to Look for More Information
Exercises
Appendix A Directory of Procedures Supported by SAS Enterprise Guide
Directory of Procedures
Task Cross-Reference
Category Cross-Reference
Appendix B Selected Additional SAS Procedures
Appendix C Data Used in This Book
Appendix D Solutions to Exercises
Index
Foreword
Because SAS has the capability to do so much, it is actually quite hard to limit a book like this.
Throughout I have tried to take the view that if something can be done by using a SAS Enterprise Guide task, then that is the way to do it. I have not tried to show alternative methods to those in SAS Enterprise Guide unless there is some clear advantage.
I have also deliberately tried not to make this book a syntax reference. Instead, I have pointed to the available documentation and help.
The ideas for the techniques and tips in this book have come from many sources. Some are the result of customer projects I have been involved with. Many are techniques I have worked out in response to questions I have been asked by students during my courses. A few have come about because of my interest in the proper use of the capabilities of the World Wide Web.
SAS Enterprise Guide is continually evolving. Future versions will almost certainly provide capabilities to do some of the things we now have to do with code. But the SAS language is also evolving, so we might still need to use code with SAS Enterprise Guide to access added capabilities. There will always be a need to look beyond SAS Enterprise Guide to accomplish everything we need.
If nothing else, I hope this book will give you the curiosity to find out what else can be achieved.
Acknowledgments
It has taken a lot of effort from many people to produce this book, and I would like to take this opportunity to thank those who have been involved.
First I would like to thank the colleagues, customers, and students at SAS UK who helped show me the need for such a book.
My first contact with SAS Press was with John West, who was my Acquisitions Editor for the first edition of this book. His help and patience throughout made the whole process extremely enjoyable and painless. As Acquisitions Editor for this second edition, Stephenie Joyner’s guidance and calming influence showed once again the joy of working with SAS Press.
Richard Bell, Randall Cates, Marie Dexter, David Ghan, Chris Hemedinger, Marty Hultgren, Iris Krammer, Bill Sawyer, Stacey Syphus, and Jennifer Tamburro all reviewed drafts of this book at various stages. They not only spotted my many mistakes, but also made helpful suggestions for improvements. Their input has made this a better book.
In the later stages of production, a larger team from SAS contributed. Joel Byrd and Candy Farrell worked through the book, finding and correcting more of my mistakes and generally improving the flow. Patrice Cherry and Jennifer Dilley designed the cover, and Shelly Goodin and Stacey Hamilton looked after the marketing. Mary Beth Steinbach coordinated all of the editing and production processes.
The contributions of all the staff at SAS Press in helping spread knowledge throughout the SAS community should never be underestimated.
Chapter 1
Why Do I Need to Write Code?
Introduction
A Brief History of SAS
SAS: A Complete Programming Language
SAS Enterprise Guide: A Graphical User Interface for SAS
So How Does SAS Enterprise Guide Work?
Examples of Enhancing the Generated Code
Examples of Writing Your Own Code
Summary
Introduction
This introductory chapter looks at what SAS is and how SAS Enterprise Guide fits into the overall SAS product set. It then explores with a few examples some of the effects that can be achieved by adding small amounts of code to SAS Enterprise Guide tasks.
This book assumes a good working knowledge of SAS Enterprise Guide and familiarity with basic SAS concepts such as tables, libraries, naming standards, SAS formats, and SAS functions. An extremely good introduction to SAS Enterprise Guide is The Little SAS Book for Enterprise Guide 4.2 by Susan Slaughter and Lora Delwiche. Alternatively, you can use the built-in SAS Enterprise Guide Help Tutorial, SAS training, or SAS Enterprise Guide online documentation at support.sas.com/eguide to review any areas you are not familiar with.
This book does not assume any prior knowledge of SAS coding.
A Brief History of SAS
Let’s look first at what we mean when we talk about SAS.
SAS: A Complete Programming Language
The name SAS
is used to refer to SAS the company, the core products offered by the company, and the underlying programming language that lets all the SAS products do their work.
The SAS programming language and core products were created at North Carolina State University in the early 1970s to help with analyzing agricultural research data. In 1976, SAS Institute Inc. was formed to bring the language and products to the wider world.
Computing in the early seventies was very different from the world of computers we know today. To get any serious processing power required a mainframe computer, a physically large machine requiring strict environmental control and a team of operators working in shifts to keep it serviced and running.
There was no spare capacity for the niceties of providing a friendly usable interface to make the life of computer users easier.
4GL? Was there a 5GL?
Each generation of programming languages was one step further removed from zeros and ones that are all a computer understands, and one step closer to a human viewpoint. Though a fifth generation was often heralded, it never really arrived, partly because Graphical User Interfaces (GUI) came along instead.
If you wanted to make a computer do anything, you had to learn the commands it understood and a programming language to make it work the way you wanted.
At least by then most programming languages were based on something that could be recognized as English, making them easier to learn and follow. The SAS programming language was a 4th Generation Programming Language (4GL), though it would be another six years before that term was first used. A 4GL allowed basic results to be achieved very easily, but also allowed those with greater knowledge of the language to make it do exactly what they needed.
Working with these computers was not easy. Punched cards were still in use (in fact, the SAS language statement CARDS still exists) but terminals were starting to become more common. These were low-resolution, monochrome, text-only devices that allowed users to feed commands and programs into a computer and see the results. If printed results were needed, the output was black and white monospace text only.
SAS started the year before the Apple II was launched; the first Macintosh was eight years in the future. IBM PCs would not be along for five years, and the first Microsoft Windows operating system was not available until two years after that. A product such as SAS Enterprise Guide was not even possible back then.
Between then and now computers and SAS have undergone massive changes.
▪ The power of computers escalated beyond all expectations, allowing massively complex programs to run on even a small computer. This allowed SAS to present even more challenging statistical techniques through their simplified 4GL.
▪ Manufacturers of serious computers gradually standardized on the UNIX operating system. SAS ported its products to run there too.
▪ The IBM PC and its clones became the main desktop tool, also making Microsoft Windows the de facto standard. Again, massive increases in power, along with the addition of color screens, pointing devices, and versatile printers, moved the user interface and presentation to the forefront. SAS produced tools to keep up with these developments—first an interactive workbench for programmers, and then SAS Enterprise Guide.
▪ The World Wide Web changed the usage of computers back towards a more centralized client/server environment, this time with the client available through a standardized browser or via a truly machine-independent Java language. Once again, SAS embraced the change with its SAS Intelligence Platform.
So SAS started from a strong position with its programming language and has evolved as computers evolved. Everything you have ever been able to do with SAS can still be done via the programming language, but that is a lot to learn and even more to master. A new approach was needed.
SAS Enterprise Guide: A Graphical User Interface for SAS
The key problem for a new SAS user before the introduction of SAS Enterprise Guide was the time it took to become proficient in using the programming language. A few attempts were made to provide a better interface, but they were all a little cumbersome and tended to be focused on a specific area of SAS. For example, there was (and still is) a very unusual interface to the SAS reporting routines discussed in the One-Stop Reporting
section of Chapter 7.
Some interface improvements, such as that for SAS Enterprise Miner, were much more successful, but were still aimed at achieving specific objectives—data mining in this case.
The key tool in opening up the power of SAS to a wider audience of power users is SAS Enterprise Guide—currently on release 4.2.
Power Users?
SAS Enterprise Guide is a tool for users who understand data structures and have the time and skills to develop sophisticated models and reports. More recently, SAS also introduced their SAS®9 software based on Web technologies and targeted towards business users.
SAS Enterprise Guide is a Microsoft Windows tool developed using Microsoft .NET. Although the client can run only on Windows, it can still utilize SAS running on any of the operating systems it supports. Using .NET as a development tool means that SAS Enterprise Guide can be extended to support new tasks, either developed by SAS, by third-parties, or by users wanting to tailor SAS Enterprise Guide to their own needs.
As described earlier, SAS is a comprehensive programming language that can be used in a huge number of ways. Although it is true that some of the language capabilities are so rooted in the past that you will probably never want to use them (look at the EXPLODE procedure mentioned in Appendix B), most are still very relevant. SAS Enterprise Guide was designed to give easy access to some of the most frequently used options. Fortunately, after you understand the way SAS Enterprise Guide works, you can learn some programming techniques that make use of this hidden functionality.
So How Does SAS Enterprise Guide Work?
SAS Enterprise Guide handles two things for the user:
SAS Enterprise Guide Interacts Directly with Microsoft Windows
SAS Enterprise Guide works directly with Windows to deal with tasks that are purely related to Windows, such as using the Windows scheduler and prompting for run-time parameters. As a SAS programmer, there is little you can do to interact with activities that are specific to Windows. It is possible to develop your own add-ins, but that would be a subject for another book and another programming language.
SAS Enterprise Guide Interacts with SAS
In virtually all cases, SAS Enterprise Guide generates SAS code for you, submits it to a SAS server for processing, and then updates the SAS Enterprise Guide workspace with the results (see Figures 1.1 through 1.4). The SAS server can be SAS software running locally on your machine, or SAS software running on another machine that you have access to. The other machine can be any platform that SAS supports—most likely a Windows or UNIX server, but possibly a mainframe system.
Figure 1.1 Use tasks to define what you want
Figure 1.2 The SAS code is written for you
Figure 1.3 SAS works out the answer …
Figure 1.4 … and the log tells you how it was done
When SAS Enterprise Guide was developed, it was recognized that it would not be practical to make everything that SAS can do available through tasks. This would have made the SAS Enterprise Guide application extremely large and much harder to use. So decisions were made about what to put in and what to leave out. Just to make sure that everything was still possible, the SAS Enterprise Guide developers included several ways for people to insert SAS code into their work.
So people were introduced to SAS Enterprise Guide as the easy way into SAS. When they found out that they needed to get more out of SAS, they were sent on to SAS programming courses. What this book seeks to do is introduce the parts of SAS code that complement SAS Enterprise Guide, without re-inventing the things that SAS Enterprise Guide does well.
In the rest of this chapter we will look at just a few examples of the ways in which you can extend SAS Enterprise Guide by the addition of SAS code. You will see many more examples as you work through the book.
Examples of Enhancing the Generated Code
As previously mentioned, the tasks in SAS Enterprise Guide generate SAS code. The majority of the tasks allow users to insert extra code at predetermined points in the generated code, enhancing the functionality of the tasks without affecting the