® ® SAS Enterprise Guide 1: Querying and Reporting Course Notes SAS® Enterprise Guide® 1: Querying and Reporting Course Notes was developed by Stacey Syphus. Additional contributions were made by Richard Bell and Davetta Dunlap. Editing and production support was provided by the Curriculum Development and Support Department. 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. SAS® Enterprise Guide® 1: Querying and Reporting Course Notes Copyright © 2014 SAS Institute Inc. Cary, NC, USA. All rights reserved. Printed in the United States of America. 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. Book code E2537, course code LWEG161/EG161, prepared date 19Mar2014. LWEG161_001 ISBN 978-1-62959-165-0 For Your Information Table of Contents Course Description ..................................................................................................................... vii Prerequisites .............................................................................................................................. viii Chapter 1 Getting Started ...................................................................................... 1-1 1.1 Introducing SAS Enterprise Guide .................................................................................. 1-3 1.2 Course Scenarios............................................................................................................ 1-11 Demonstration: Navigating the SAS Enterprise Guide Workspace ........................ 1-16 Exercises.................................................................................................................. 1-22 1.3 Solutions ........................................................................................................................ 1-25 Solutions to Exercises ............................................................................................. 1-25 Chapter 2 Working with Data in a Project ............................................................ 2-1 2.1 Understanding SAS Data Structure.................................................................................. 2-3 2.2 Accessing SAS and DBMS Data ................................................................................... 2-10 Demonstration: Assigning a SAS Library............................................................... 2-19 Exercises.................................................................................................................. 2-20 2.3 Importing Data Files ...................................................................................................... 2-22 Demonstration: Using the Import Data Task ........................................................... 2-24 Demonstration: Using the Import Data Task (continued) ....................................... 2-27 Exercises.................................................................................................................. 2-29 2.4 Solutions ........................................................................................................................ 2-32 Solutions to Exercises ............................................................................................. 2-32 Solutions to Student Activities (Polls/Quizzes) ....................................................... 2-41 Chapter 3 3.1 Getting Started with Tasks................................................................... 3-1 Introduction to Tasks and Wizards ................................................................................... 3-3 iii iv 3.2 For Your Information Creating a Frequency Report ......................................................................................... 3-10 Demonstration: Generating a One-Way Frequency Report .................................... 3-13 Exercises.................................................................................................................. 3-15 3.3 Generating HTML, PDF, and RTF Output..................................................................... 3-18 Demonstration: Modifying Output Format ............................................................. 3-22 3.4 Creating a Listing Report ............................................................................................... 3-24 Demonstration: Using the List Data Task to Create a Report ................................. 3-25 3.5 Filtering Data in a Task .................................................................................................. 3-28 Demonstration: Filtering Data in a Task ................................................................. 3-30 Exercises.................................................................................................................. 3-33 3.6 Creating a Graph ............................................................................................................ 3-36 Demonstration: Creating a Bar Chart ...................................................................... 3-39 Exercises.................................................................................................................. 3-44 3.7 Solutions ........................................................................................................................ 3-47 Solutions to Exercises ............................................................................................. 3-47 Solutions to Student Activities (Quizzes/Polls) ....................................................... 3-63 Chapter 4 4.1 Creating Simple Queries ...................................................................... 4-1 Filtering and Sorting Data................................................................................................ 4-3 Demonstration: Selecting Columns and Filtering Rows ........................................... 4-8 Exercises.................................................................................................................. 4-16 4.2 Creating New Columns with an Expression .................................................................. 4-20 Demonstration: Creating a Column with an Expression ......................................... 4-23 Exercises.................................................................................................................. 4-26 4.3 Grouping and Summarizing Data in a Query................................................................. 4-29 Demonstration: Summarizing and Filtering by Groups .......................................... 4-33 Exercises.................................................................................................................. 4-35 4.4 Joining Tables ................................................................................................................ 4-37 For Your Information Demonstration: Joining Tables ................................................................................ 4-42 Exercises.................................................................................................................. 4-44 4.5 Solutions ........................................................................................................................ 4-47 Solutions to Exercises ............................................................................................. 4-47 Solutions to Student Activities (Polls/Quizzes) ....................................................... 4-69 Chapter 5 5.1 Creating Summarized Output .............................................................. 5-1 Generating Summary Statistics ........................................................................................ 5-3 Demonstration: Generating Summary Statistics ....................................................... 5-5 Exercises.................................................................................................................... 5-8 5.2 Creating a Summary Report with the Summary Tables Task......................................... 5-11 Demonstration: Creating a Tabular Summary Report ............................................. 5-12 Exercises.................................................................................................................. 5-16 5.3 Solutions ........................................................................................................................ 5-18 Solutions to Exercises ............................................................................................. 5-18 Chapter 6 Using Prompts in Tasks and Queries ................................................. 6-1 6.1 Prompting in Projects....................................................................................................... 6-3 6.2 Creating and Using Prompts in Tasks .............................................................................. 6-6 Demonstration: Prompting in Tasks ........................................................................ 6-10 Exercises.................................................................................................................. 6-13 6.3 Creating and Using Prompts in Queries ......................................................................... 6-14 Demonstration: Prompting in Queries .................................................................... 6-17 Exercises.................................................................................................................. 6-19 6.4 Solutions ........................................................................................................................ 6-23 Solutions to Exercises ............................................................................................. 6-23 Solutions to Student Activities (Quizzes/Polls) ....................................................... 6-33 v vi For Your Information Chapter 7 7.1 Customizing and Organizing Project Results .................................... 7-1 Combining Results ........................................................................................................... 7-3 Demonstration: Combining Results .......................................................................... 7-5 Exercises.................................................................................................................... 7-8 7.2 Updating and Organizing Projects ................................................................................... 7-9 Demonstration: Updating Results ........................................................................... 7-15 Exercises.................................................................................................................. 7-18 7.3 Solutions ........................................................................................................................ 7-19 Solutions to Exercises ............................................................................................. 7-19 Solutions to Student Activities (Quizzes/Polls) ....................................................... 7-24 Chapter 8 Learning More ....................................................................................... 8-1 8.1 SAS Resources ................................................................................................................. 8-3 8.2 Beyond This Course ......................................................................................................... 8-7 Appendix A Writing and Submitting SAS® Programs ........................................... A-1 A.1 Writing and Submitting SAS Programs .......................................................................... A-3 Demonstration: Adding a SAS Program to a Project ............................................. A-12 Exercises................................................................................................................. A-19 A.2 Solutions ....................................................................................................................... A-22 Solutions to Exercises ............................................................................................ A-22 Solutions to Student Activities (Polls/Quizzes) ...................................................... A-26 For Your Information vii Course Description This course is for users who do not have SAS programming experience but need to access, manage, and summarize data from different sources, and present results in reports and graphs. This course focuses on using the menu-driven tasks in SAS Enterprise Guide, the point-and-click interface to SAS, to create queries and reports. It does not address writing SAS code or statistical concepts. This course serves as a prerequisite for the SAS® Enterprise Guide® 2: Advanced Tasks and Querying. It also serves as a prerequisite for the SAS® Enterprise Guide®: ANOVA, Regression, and Logistic Regression course, which teaches statistical concepts using SAS Enterprise Guide. To learn more… For information about other courses in the curriculum, contact the SAS Education Division at 1-800-333-7660, or send e-mail to training@sas.com. You can also find this information on the web at http://support.sas.com/training/ as well as in the Training Course Catalog. For a list of other SAS books that relate to the topics covered in this course notes, USA customers can contact the SAS Publishing Department at 1-800-727-3228 or send e-mail to sasbook@sas.com. Customers outside the USA, please contact your local SAS office. Also, see the SAS Bookstore on the web at http://support.sas.com/publishing/ for a complete list of books and a convenient order form. viii For Your Information Prerequisites This course is designed for users with no programming experience or SAS knowledge. Before attending this course, you should be familiar with Windows and other software, such as Microsoft Office or spreadsheet programs. Chapter 1 Getting Started 1.1 Introducing SAS Enterprise Guide ............................................................................... 1-3 1.2 Course Scenarios ......................................................................................................... 1-11 Demonstration: Navigating the SAS Enterprise Guide Workspace ..................................... 1-16 Exercises .............................................................................................................................. 1-22 1.3 Solutions ....................................................................................................................... 1-25 Solutions to Exercises .......................................................................................................... 1-25 1-2 Chapter 1 Getting Started Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.1 Introducing SAS Enterprise Guide 1.1 Introducing SAS Enterprise Guide Objectives State the capabilities and major features of SAS Enterprise Guide software. Describe configuration options. 3 What Is SAS? SAS is a suite of business solutions and technologies to help organizations solve business problems. Statistical Process Control Analysis of Variance R Integration Categorical Data Analysis High-Performance Analytics Statistical Analysis Social Network Analysis Process Capability Analysis Linear Programming Vector Autoregressive Models Business Solutions Mixed-Integer Programming Time Series Analysis Bayesian Neural Networks Descriptive Modeling Multinomial Discrete Choice Survey Data Analysis D-Optimal Predictive Modeling Sample Size Computations ARIMA Models Business Intelligence Survival Analysis Ensemble Models Predictive Analytics Network Flow Models X11 & X12 Models Nonparametric Analysis Scoring Acceleration Scheduling Reliability Analysis Design of Experiments Cluster Analysis Nonlinear Programming Decision Trees Psychometric Analysis High-Performance Forecasting Mixed Models Information Theory Multivariate Analysis Information Management Analysis of Means Interior-Point Models Random Forests 4 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-3 1-4 Chapter 1 Getting Started What Is SAS Enterprise Guide? 5 This course is written for SAS Enterprise Guide 6.1. To determine which version of Enterprise Guide you are using, select Help About SAS Enterprise Guide. What Is SAS Enterprise Guide? visual interface to SAS 6 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. ... 1.1 Introducing SAS Enterprise Guide What Is SAS Enterprise Guide? visual interface to SAS transparent data access ... 7 What Is SAS Enterprise Guide? visual interface to SAS transparent data access interactive task windows 8 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. ... 1-5 1-6 Chapter 1 Getting Started What Is SAS Enterprise Guide? visual interface to SAS transparent data access interactive task windows export capabilities ... 9 What Is SAS Enterprise Guide? visual interface to SAS transparent data access interactive task windows export capabilities programming interface ... 10 If you are a SAS programmer, you can use the Enterprise Guide Program Editor to create new code or to modify existing SAS programs. The Program Editor offers several features to help you reduce your programming time, including autocompletion for hundreds of SAS statements, procedures, and options. The Program Editor also provides built-in syntax and function Help, and automatic code formatting. See Appendix A for details about writing and submitting SAS programs in Enterprise Guide. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.1 Introducing SAS Enterprise Guide What Is SAS Enterprise Guide? visual interface to SAS transparent data access interactive task windows export capabilities programming interface Help and tutorial 11 1.01 Multiple Choice Poll Describe your experience with Enterprise Guide. a. I had not heard of it until I was told to take this class. b. I saw other people use it. c. I have used it a little. d. I have used it extensively. 12 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-7 1-8 Chapter 1 Getting Started Discussion What are your reasons for learning about SAS Enterprise Guide? 13 Behind the Scenes Enterprise Guide prepares SAS code, either generated through point-and-click tasks or written by the user, and submits the code to SAS. 14 ... You can modify the programming code to customize the result and to access SAS features that are not available in the point-and-click interface. You can save code and execute it in a batch environment. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.1 Introducing SAS Enterprise Guide Behind the Scenes SAS then executes the code and delivers the results to Enterprise Guide. 15 Configuration Enterprise Guide can be configured to work with SAS either on the local PC or on a remote server. Local Client/Server 16 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-9 1-10 Chapter 1 Getting Started Configuration Enterprise Guide can also be used as part of the platform for SAS Business Analytics. Enterprise Guide includes additional features that are related specifically to the SAS platform. 17 Look for to identify features that are specific to the platform for SAS Business Analytics. 1.02 Multiple Answer Poll Describe your Enterprise Guide configuration. a. SAS is installed on my PC. b. SAS is installed on a remote server. c. My company has the platform for SAS Business Analytics. d. other e. not sure 18 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.2 Course Scenarios 1.2 Course Scenarios Objectives Define the business scenario for class demonstrations and exercises. Describe the steps to build an Enterprise Guide project. List the topics discussed in this course. Compare the three levels of exercises that are used in the course. List additional online resources. Access the extended learning page for this course. 20 Orion Star Sports & Outdoors Orion Star Sports & Outdoors is a fictitious global sports and outdoors retailer. For demonstrations and exercises, you use data about Orion’s customers, products, orders, and employees. 21 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-11 1-12 Chapter 1 Getting Started Orion Star Project Throughout the course, you use Enterprise Guide to access various types of data sources, query the data to filter and join tables, and produce several summary reports and graphs. 22 Enterprise Guide Interface: The Project A project is a single file that serves as a collection of data sources SAS programs and logs tasks and queries results informational notes for documentation. Project You can control the contents, sequencing, and updating of a project. 23 e101d01.egp Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.2 Course Scenarios Building an Enterprise Guide Project To begin work with Enterprise Guide, you 1. create a new project 2. add data to the project 3. run tasks against the data. In addition, you can 4. customize, update, and share results 5. automate the process. 24 About This Course Chapter 2 Working with Data in a Project 25 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-13 1-14 Chapter 1 Getting Started About This Course Chapter 3 Getting Started with Tasks 26 About This Course Chapter 4 Creating Simple Queries 27 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.2 Course Scenarios About This Course Chapter 5 Creating Summarized Output 28 About This Course ? Chapter 6 Using Prompts in Tasks and Queries 29 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-15 1-16 Chapter 1 Getting Started About This Course Chapter 7 Customizing and Organizing Project Results 30 Navigating the SAS Enterprise Guide Workspace Start Enterprise Guide and begin to build a project. 1. Open Enterprise Guide. When you enter Enterprise Guide, the Welcome to SAS Enterprise Guide dialog box appears automatically to enable you to create a new project or open an existing project. Any projects listed under the Open a project heading have a .egp file extension. 2. Select New Project. If the Welcome window is not open, you can create a new project by selecting File New Project. You can also open an existing project by selecting File Open Project. 3. Enterprise Guide displays three main windows by default. Notice the windows, which are labeled as follows: • Project Tree • Process Flow • Server List to dock 4. By default, the Project Tree and Server List windows are docked on the left side. Click the window on the left side or to auto-hide it. Auto-hide hides the window, but displays the window name on the border of the Enterprise Guide window. Place the cursor over the window name to make the window visible. The Project Tree, Process Flow, and other helpful windows can be opened from the View menu. To reset all windows to their original positions, select Tools Options from the menu bar. Select Restore Window Layout OK. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.2 Course Scenarios 1-17 5. Insert an existing SAS data set by selecting File Open Data. You can also use the icon on the toolbar to open projects, data, and other files. 6. To navigate to data stored on your personal computer, select My Computer. Navigate to the location indicated by your instructor and select customers Open to add the SAS data set to the project. A shortcut to the customers data set is added to the project tree and the process flow. By default, a snapshot of a few rows of the data appears in the data grid in the workspace. 7. After a data source is added to the project, you can use it for analysis and reporting. With the customers data set open in the data grid, select Describe Characterize Data. 8. The Characterize Data task is in a wizard format that enables you to go through each of the three steps and modify any options. Step 1 enables you to verify the data source that you want to analyze. Select Next. 9. If you want more information about a particular task, access the Enterprise Guide Help facility through the Task dialog box. To learn more about the Characterize Data task, click the Help button in the Task dialog box to view the contents of the Help facility relating to the Characterize Data task . and report options. Close the Help window by clicking 10. In Step 2 of the task, you can customize the report options, including producing a summary report, graph, or output data set. To change the name of the data set that includes frequency counts for any character columns, select Browse in the Frequency Data pane. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-18 Chapter 1 Getting Started 11. Type CustomerCounts in the File name field and select Save Next. 12. In Step 3, limit the number of unique categorical values to be reported per variable by typing 15. 13. Select Finish to run the task and view the results. To observe the status of the task as it runs, select Details in the lower left corner of Enterprise Guide. The Task Status window appears, and indicates the processing task, status, and server. The output includes frequency counts for character columns, summary statistics for numeric columns, and basic graphs to characterize each. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.2 Course Scenarios 1-19 Partial Output on the toolbar, double-click 14. To view the contents of the current project, you can click Process Flow in the project tree, or press the F4 key. The Characterize Data task was added in the project tree and process flow, and linked to the customers data set. (the Characterize Data icon) in either the project tree 15. Return to the task results by double-clicking or process flow. To view the task code, click the Code tab. The SAS code can be saved and edited to customize the task results or to use features of SAS that are not available in the Enterprise Guide point-and-click environment. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-20 Chapter 1 Getting Started 16. The Log window and summary display messages from SAS for each task that you execute. To view the log, click the Log tab. 17. This task produces two data sets. The first data set that was created is displayed automatically. Click the Output Data (2) tab to view the data set that contains frequency counts. The other data set containing summary statistics can be accessed either from the drop-down list on the Output Data tab, or from the process flow. 18. The output data can be exported easily to a wide variety of other software formats, including Microsoft Excel. To open the data in Excel automatically, select Send To Microsoft Excel. Close Excel and do not save the changes. 19. To save the collection of tasks, code, and results generated so far, you must save the project. Select File Save Project As from the menu bar and click the My Computer icon. Navigate to the appropriate file location and type Chapter1 for the filename. Select Save. Projects can be saved on a Windows machine or on a remote server where SAS is running. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.2 Course Scenarios Three Levels of Exercises Level 1 Step-by-step instructions Level 2 Less information and guidance Challenge Description of task Might require SAS programming knowledge or use of the Help facility The course is designed to have you complete only one level of exercises, based on your skill level. 32 63 Detailed solutions are available at the end of each chapter. Some exercise sections do not include all three levels of exercises. Extending Your Learning An extended learning page is available for this course. It includes the following: the course files a PDF of the course notes instructor-tip videos papers and presentations 33 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-21 1-22 Chapter 1 Getting Started SAS Help Facility The SAS Enterprise Guide Help facility and SAS on the Web give additional directions about Enterprise Guide and the SAS programming language. 34 Additional Resources SAS Enterprise Guide communities: https://communities.sas.com/ SAS Enterprise Guide blog: http://blogs.sas.com/sasdummy/ SAS OnlineDoc: http://support.sas.com/documentation 35 Exercises Level 1 1. Creating a Project and Running the Characterize Data Task a. In the Chapter1 project, add the employee_organization data set. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.2 Course Scenarios 1-23 If you do not have the Chapter1 project, you can create a new project by selecting New Project in the Welcome to SAS Enterprise Guide window. If Enterprise Guide is open, select File New Project. 1) Select File Open Data from the menu bar. 2) Select My Computer on the left side of the Open Data window. 3) Navigate to the location of the course data. 4) Select the employee_organization data set and select Open. b. Use the Characterize Data task to investigate the distribution of each of the columns in the employee_organization data set. 1) Select Describe Characterize Data in the data grid to open the Task Wizard. 2) Limit the number of unique categorical values to be reported per variable to 15. 3) Run the task and examine the results. Partial Results c. Save the project as Chapter1 in the location that is specified by your instructor. Level 2 2. Running the Data Set Attributes Task The Data Set Attributes task enables you to create a report with information about a particular data set, including creation date, location, and number of observations, as well as the variable names, labels, types, and formats. a. In the Chapter1 project, open the employee_organization data set in the data grid and open the Data Set Attributes task. If you did not save the Chapter1 project from the Level 1 exercise, create a new project and add the employee_organization data set. b. In Step 2 of the task, make sure that Default Report is the only other output that is selected. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-24 Chapter 1 Getting Started c. Run the task and examine the results. Partial Results d. Save the project as Chapter1 in the location that is specified by your instructor. Challenge 3. Submitting a SAS Program with a Coding Error In addition to using the point-and-click tasks, you can create a new SAS program or include existing SAS programs in your project. Enterprise Guide provides a color-coded, syntax-checking SAS language editor for editing new or existing SAS programs in your project. a. Add the program e101e03.sas to the Chapter1 project. b. Run the program, review the log summary, and identify the error. c. Correct the error in the Code window, resubmit the corrected program, and review the results. You can right-click on the error message in the log summary to go to the corresponding line in the program or log. Partial Results d. Save the project as Chapter1 in the location that is specified by your instructor. Select Yes when you are prompted to save the changes that you made to the e101e03 program. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.3 Solutions 1.3 Solutions Solutions to Exercises 1. Creating a Project and Running the Characterize Data Task a. In the Chapter1 project, add the employee_organization data set. If you do not have the Chapter1 project, you can create a new project by selecting New Project in the Welcome to SAS Enterprise Guide window. If Enterprise Guide is open, select File New Project. 1) Select File Open Data from the menu bar. 2) Select My Computer on the left side of the Open Data window. 3) Navigate to the location of the course data. 4) Select the employee_organization data set and select Open. b. Use the Characterize Data task to investigate the distribution of each of the columns in the employee_organization data set. 1) Select Describe Characterize Data in the data grid to open the Task Wizard. 2) Limit the number of unique categorical values to be reported per variable to 15. a) Select Next twice to advance to Step 3 of the Characterize Data Wizard. b) Type 15 in the Limit the number of unique categorical values to be reported per variable field. 3) Run the task and examine the results. Select Finish. Partial Results c. Save the project as Chapter1 in the location that is specified by your instructor. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-25 1-26 Chapter 1 Getting Started If you saved the project, you can select File Save Chapter1 only. 1) Select File Save Project As from the menu bar. 2) Select My Computer and navigate to the location that is indicated by your instructor. 3) Type Chapter1 in the File name field and select Save to close the Save As dialog box. 2. Running the Data Set Attributes Task a. In the Chapter1 project, open the employee_organization data set in the data grid and open the Data Set Attributes task. If you did not save the Chapter1 project from the Level 1 exercise, create a new project and add the employee_organization data set. 1) Double-click employee_organization in the project tree or process flow to open the table in the data grid. 2) Select Data Data Set Attributes. b. In Step 2 of the task, make sure that Default Report is the only other output that is selected. 1) Select Next to advance to Step 2 of the Data Set Attributes Wizard. 2) Under Other Outputs, clear the Enhanced Report check box. c. Run the task and examine the results. Select Finish. Partial Results d. Save the project as Chapter1 in the location that is specified by your instructor. If you completed a previous exercise, you can select File Save Chapter1 only. 1) Select File Save Project As from the menu bar. 2) Select My Computer and navigate to the location that is indicated by your instructor. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1.3 Solutions 1-27 3) Type Chapter1 in the File name field and select Save to close the Save As dialog box. 3. Submitting a SAS Program with a Coding Error In addition to using the point-and-click tasks, you can create a new SAS program or include existing SAS programs in your project. Enterprise Guide provides a color-coded, syntax-checking SAS language editor for editing new or existing SAS programs in your project. (See Appendix A for details about writing and submitting SAS code in Enterprise Guide.) a. Add the program e101e03.sas to the Chapter1 project. 1) Select File Open Program from the menu bar. 2) Select My Computer on the left side of the Open Data window. 3) Navigate to the location of the course data. 4) Select the e101e03.sas program and select Open. b. Run the program, review the log summary, and identify the error. You can right-click on the error message in the log summary to go to the corresponding line in the program or log. 1) Select Run on the menu bar. 2) Because the program had an error, the SAS log appears automatically in the workspace. Review the log to identify the error. The SAS keyword var was misspelled as vat. c. Correct the error in the Code window, resubmit the corrected program, and review the results. You can right-click on the error message in the log summary to go to the corresponding line in the program or log. 1) Right-click on the error in the log summary and select Go To Program Source. 2) Change the spelling of the SAS keyword to var. 3) Select Run from the menu bar. Select Yes when you are prompted to replace the results. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 1-28 Chapter 1 Getting Started Partial Results d. Save the project as Chapter1 in the location that is specified by your instructor. Select Yes when you are prompted to save the changes made to the e101e03 program. If you completed the Level 1 or Level 2 exercise, you can select File Save Chapter1 only. 1) Select File Save Project As from the menu bar. 2) Select My Computer and navigate to the location that is indicated by your instructor. 3) Type Chapter1 in the File name field and select Save to close the Save As dialog box. 4) Click Yes when you are prompted to save the e101e03 program. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Chapter 2 Working with Data in a Project 2.1 Understanding SAS Data Structure .............................................................................. 2-3 2.2 Accessing SAS and DBMS Data.................................................................................. 2-10 Demonstration: Assigning a SAS Library ............................................................................. 2-19 Exercises .............................................................................................................................. 2-20 2.3 Importing Data Files ..................................................................................................... 2-22 Demonstration: Using the Import Data Task ........................................................................ 2-24 Demonstration: Using the Import Data Task (continued) ..................................................... 2-27 Exercises .............................................................................................................................. 2-29 2.4 Solutions ....................................................................................................................... 2-32 Solutions to Exercises .......................................................................................................... 2-32 Solutions to Student Activities (Polls/Quizzes) ..................................................................... 2-41 2-2 Chapter 2 Working with Data in a Project Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.1 Understanding SAS Data Structure 2.1 Understanding SAS Data Structure Objectives State the definition of a SAS data set. State how data is stored in a SAS data set. 3 Business Scenario Orion maintains data in a variety of different formats and locations. Business analysts want to access the data sources in SAS Enterprise Guide. 4 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-3 2-4 Chapter 2 Working with Data in a Project Common Data Formats SAS Enterprise Guide can read and use data from a variety of different formats and locations. 5 SAS Enterprise Guide can also read SAS Information Maps. An information map is a business metadata layer that is applied on top of the data sources in your data warehouse. Metadata is information about the structure and content of data. An information map does not contain any physical data. Information maps provide business users with a user-friendly way to query data and obtain results for themselves. 2.01 Multiple Answer Poll Which types of data do you work with? a. Microsoft Excel b. Microsoft Access c. DBMS tables (such as Oracle or DB2) d. SAS data sets e. text files (delimited files) f. other 6 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.1 Understanding SAS Data Structure 2-5 SAS Data Set A SAS data set (or table) is a rectangular table of rows and columns. Rows (observations) Columns (variables) 7 Column Names Column names can be up to 32 characters long. It is recommended that column names also start with a letter or underscore include only letters, underscores, and numbers. 8 Enterprise Guide allows spaces and special symbols in variable names because it invokes the VALIDVARNAME=ANY option when SAS initializes. Not all SAS environments invoke this option. You should follow SAS standard naming conventions for column names if you anticipate running code generated by Enterprise Guide in other SAS applications. Standard naming rules are that columns must start with a letter or underscore, and that the remaining characters are letters, underscores, or numbers. A new option in Enterprise Guide 6.1 allows you to set variable naming rules. To force Enterprise Guide to follow standard SAS naming conventions, select Tools Options Data General and in the Naming Options pane, change Valid variable names to Basic variable names (V7). Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-6 Chapter 2 Working with Data in a Project 2.02 Multiple Answer Poll Which names follow the standard SAS naming rules? a. data5mon b. 5monthsdata c. data#5 d. five months data e. five_months_data f. FiveMonthsData 9 Column Labels For display purposes, columns can also have a corresponding label. Labels can be up to 256 characters and include spaces and special symbols. 11 Variable names appear by default in the data grid and in tasks. To display labels rather than variable names, select Tools Options Data General and select Use labels for column names. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.1 Understanding SAS Data Structure 2-7 Column Type A column’s type is either character (string) or numeric. Character values are 1 to 32,767 characters long. Numeric values can be numbers currency date (days from 01JAN1960) time (seconds from midnight). 12 As well as name and type, another required column attribute is length. Length refers to the number of bytes that are used to store each of the variable's values in a SAS data set. Character values are stored with a length of 1 to 32,767 bytes. One byte equals one character. Numeric values are stored as floating point numbers in 8 bytes of storage by default. Eight bytes of floating point storage provide space for 16 or 17 significant digits. Formats A format is used to control how values are displayed. Formats do not affect how values are stored. Format: Width: Stored value: DATE 9 17227 Format: DOLLAR Width: 10 Decimal Places: 2 Stored value: 234.60 13 A format (display format) is an instruction that you apply to a column. The format tells Enterprise Guide how data values should be displayed. Use formats to control the appearance of data values or to group data values for analysis. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-8 Chapter 2 Working with Data in a Project An informat (read-in format) is an instruction that Enterprise Guide uses to read data values into a variable. For example, the following value contains a dollar sign and commas: $1,000,000 To remove the dollar sign ($) and commas (,) before storing the numeric value 1000000 in a variable, read this value with the DOLLAR10. informat. Formats 14 SAS Data Set Properties Viewing a data set’s properties enables you to examine the data set and column attributes. 15 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.1 Understanding SAS Data Structure Attributes of a SAS data set are stored in the properties and include the following: • the data set name • the storage location • the date last modified • all column attributes (such as name, type, and length) • the number of rows and columns • the server on which the data resides in the data grid or right-click the item To view the properties of a data source, click in the project tree or process flow. Select Properties from the menu. In the SAS documentation, a data set’s properties are referred to as the descriptor portion. 2.03 Multiple Choice Poll Open the employee_info data set. Click the Properties button on the toolbar and select Columns. What is the type of the variable Postal_Code? a. character b. numeric 16 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-9 2-10 Chapter 2 Working with Data in a Project Missing Values If a data value is not present for a column in a particular row, it is considered missing. A missing character value is displayed as a blank. A missing numeric value is displayed as a period or dot. . 18 Many tasks in Enterprise Guide provide options for how to handle missing values in the report or analysis. 2.2 Accessing SAS and DBMS Data Objectives Identify methods for accessing data. Define SAS libraries. Add data to a project via a library definition. Explore data interactively. 20 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.2 Accessing SAS and DBMS Data Business Scenario Orion Star wants to use SAS Enterprise Guide to access SAS and DBMS tables that include information about customers and orders. 21 DBMS is the acronym for database management system. Methods for Adding Data to a Project The Open Data window provides multiple options for accessing existing data sources. 22 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-11 2-12 Chapter 2 Working with Data in a Project Methods for Adding Data to a Project Data can be accessed via the local Windows directory structure, including network drives. 23 Methods for Adding Data to a Project Servers provide access to locations where SAS is installed and configured to work with SAS Enterprise Guide. 24 Your SAS Enterprise Guide administrator must define remote servers. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.2 Accessing SAS and DBMS Data 2-13 Methods for Adding Data to a Project SAS Folders provide quick access to data that is defined in the SAS platform for a particular user or group. 25 Accessing Data via SAS Servers or Folders The Resources pane provides another method to view and access all of your available files and data sources. 26 If you have sufficient permission, you can perform various server and file management tasks, such as deleting, copying, or renaming files, by right-clicking items in the window (servers, folders, libraries, data sets, and files). Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-14 Chapter 2 Working with Data in a Project 2.04 Quiz 1. Select File New Project. 2. Select View Server List or click the Server List icon in the Resources pane below the project tree. 3. Expand Servers your server name Files. 4. Navigate to the location of the course data. What two things happen when you double-click customers.sas7bdat? 27 SAS Libraries Another way to access SAS or DBMS data is via a SAS library. A SAS library is a collection of files that are defined, recognized, and accessible by SAS. SAS library 29 SAS libraries are typically created and maintained by SAS administrators or users of other SAS applications. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.2 Accessing SAS and DBMS Data SAS Libraries An engine is used with a library to specify the data type and how it should be read. SAS library SAS/ACCESS engine 30 SAS Library A library named orion can be defined with the Base SAS engine to reference all SAS data sets in s:\workshop. 31 On Windows and UNIX operating systems, a SAS library is a directory. For z/OS, a SAS library is an operating system file. SAS libraries are accessed by a library reference name, such as Sasuser or orion_db2. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-15 2-16 Chapter 2 Working with Data in a Project Microsoft Access Library A library named orionacs can be defined with the SAS/ACCESS Interface to PC Files engine to read all of the tables in a Microsoft Access database. 32 Library names must start with a letter or underscore, and include only letters, underscores, or numbers. Library names can have up to eight characters. DBMS Library A library named oriondb can be defined with the SAS/ACCESS Interface to Teradata engine to read all of the tables in a Teradata database. 33 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.2 Accessing SAS and DBMS Data 2.05 Quiz 1. Select View Server List or click the Server List icon in the Resources pane below the project tree. 2. Expand Servers your server name Libraries. What libraries are listed? 34 Available Libraries Some libraries can be defined automatically by SAS. Work – temporary library Sasuser – permanent library for an individual user ID Sashelp, Maps – libraries including sample or descriptive tables 36 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-17 2-18 Chapter 2 Working with Data in a Project Custom Libraries Custom SAS libraries are typically set up by your SAS administrator. However, the Assign Project Library Wizard can be used to define libraries to SAS or DBMS data sources for which you have Read permission. 37 A library that is created using the Assign Project Library Wizard remains assigned for the duration of the SAS session or until it is manually unassigned. When you start a new Enterprise Guide session, the Assign Project Library task must be rerun to reassign the library. Adding Data to a Project After a library is assigned, double-click or drag a data source from the Server List pane to the Project Tree or Process Flow window. This enables you to add a shortcut to the data in the project. 38 When a data source is added to a project, it automatically opens in the data grid. To change this, select Tools Options Data General and clear Automatically open data when added to the project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.2 Accessing SAS and DBMS Data 2-19 Assigning a SAS Library This demonstration illustrates how to assign a library and add a data set to the project from that library. 1. Select File New Project. 2. To create a library, begin by selecting Tools Assign Project Library. Your SAS administrator is typically responsible for setting up libraries for you to access on the SAS server. However, if you want to define a library to SAS within your project or to DBMS tables to which you have Read access, you can use the Assign Project Library task. 3. In Step 1 of the Assign Project Library Wizard, type ORION in the Name field. Select the server on which the course data resides and click Next. 4. In Step 2, the engine is defined and necessary information is provided to connect to the data. The File System engine type and the BASE engine read the latest version of SAS data sets. Provide the path of the course data and click Next. To connect to a DBMS source, change Engine type to Database System and select the appropriate SAS/ACCESS engine from the Engine drop-down list. 5. In Step 3, type access in the Name field and readonly in the Value field. This ensures that even if you are granted Write access to the data at the operating system or database level, SAS does not enable you to make changes to the data sources in the library. Click Next. The name-value pairs correspond with keywords and values used in the LIBNAME statement. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-20 Chapter 2 Working with Data in a Project 6. In Step 4, verify the settings and select Test Library. You should see OK appear. Click Finish to define the library in your project. in the 7. To access the data sources in the orion library, select View Server List or click Resources pane. Expand Servers <your server name> Libraries ORION. Double-click ORDERS to add a shortcut to the project. You need to refresh the server view to see the current contents of the orion library. You can do this by highlighting the server name and clicking the Refresh button. 8. Save the project as Chapter2. Exercises Level 1 1. Assigning a Project Library Create the orion library to access the Orion customer and employee SAS data sets. a. In the Chapter2 project, use the Assign Project Library task to create the orion library and point to the location of the course data. If you do not have the Chapter2 project, you can create a new project. b. Include the access=readonly option in Step 3 of the task. Then test and assign the library. c. View the orion library in the Server List pane. If you do not see the library or the data sets, select your server and click Refresh. d. Save the Chapter2 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.2 Accessing SAS and DBMS Data 2-21 Level 2 2. Using the Server List for File Operations Use the server list to copy, paste, and delete data sets. a. The server list can be used to create a copy of a data set. To create a temporary copy, right-click the travel_expenses table in the orion library and select Copy. Then right-click the Work library and select Paste. b. Double-click the travel_expenses table in the Work library to add it to the project. c. Right-click travel_expenses in the project tree or process flow and select Delete. Is the table deleted from the library? d. Right-click travel_expenses in the Work library in the Server List pane and select Delete. Are you able to delete the table? e. Right-click travel_expenses in the orion library in the Server List pane and select Delete. Are you able to delete the table? Challenge 3. Browsing a Data Set in the Data Grid When you view an existing data source in Enterprise Guide, you use the data grid. You can search the data grid for a specific value or variable name. Then you can hold, hide, or move columns while you browse the data. a. In the Chapter2 project, add the employee_master SAS data set. b. Use the Find option in the Edit menu to search for Warehouse Manager in the Job_Title column. c. Hold the Employee_ID variable at the left side of the window so that it remains visible when you scroll to the right. Right-click on specific variables to view the options. d. Hide the Salary and Birth_Date variables. e. Free (or remove the hold for) the Employee_ID variable and show the previously hidden variables. f. Move the Manager_ID variable so that it appears to the right of Employee_Name. Moving the variable does not change the variable order in the data set; only the display order in the data grid is changed. g. Close the data grid. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-22 Chapter 2 Working with Data in a Project 2.3 Importing Data Files Objectives Import a Microsoft Excel spreadsheet and create a SAS data set. Import a fixed-width text file and create a SAS data set. 44 Business Scenario Orion maintains a Microsoft Excel file named products and a text file named orders. To use these data sources in SAS Enterprise Guide, they must be imported into SAS data sets. Import Data 45 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.3 Importing Data Files 2-23 2.06 Quiz Select File Open Data and navigate to the location of the course data if necessary. What happens when you open the Excel products file? 46 Import Data Task The Import Data task can be used to read text or PC-based data files (including Microsoft Excel and Microsoft Access) and to create SAS data sets. 48 The Import Data task can read the following: • Microsoft Access 1.x, 2.0, Access 95, Access 97, Access 2000, Access 2002 (XP), Access 2003, Access 2007 In the 64-bit version of Enterprise Guide, you cannot open Microsoft Access data. If you need this feature, it is suggested that you install the 32-bit version of Enterprise Guide. • Microsoft Excel 4-7, Excel 97, Excel 2000, Excel 2002 (XP), Excel 2003, Excel 2007, Excel 2010 Microsoft Exchange Server 2000, 2003, 2007 Microsoft Exchange Server 2000, 2003, 2007 • HTML Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-24 • • • • • Chapter 2 Working with Data in a Project Paradox 3 - 12 text (delimited or fixed column) all versions of Stata (*.DTA) under Microsoft Windows all versions of SPSS (*.SAV) under Microsoft Windows JMP Discussion • • Why is the Import Data task a necessary step when you read Excel or text files? What information must you provide so that the data can be interpreted correctly? Using the Import Data Task Part 1: Importing a Microsoft Excel Spreadsheet Named Products 1. In the Chapter2 project, select File Open Data from the menu bar. Navigate to the location of the course data and select the Excel products file. Select Open. 2. The Import Data task is automatically launched. Verify that the Excel products spreadsheet is the source data file and that the output SAS data set is products. Click Next. The storage location of the resulting SAS data set can be changed by selecting a different library. To determine the default library, Enterprise Guide searches for the first writable library in this order: egtask, gridwork, Work, Sasuser. You can modify the default library by selecting Tools Options Output Library. 3. In Step 2, verify that the ProductList worksheet is highlighted. Select the check boxes for First row of range contains field names and Rename columns to comply with SAS naming conventions. Click Next. The Rename columns to comply with SAS naming conventions option truncates names to 32 characters and replaces spaces and special symbols with an underscore. 4. In Step 3, change the name in the first row to Product_ID and the label to Product ID. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.3 Importing Data Files 2-25 5. Also, in Step 3, change the type for Supplier_ID to String. You are prompted to choose a method for determining the length of the character variable. Verify that Scan all values in the column is selected and click OK Next. The length of a character column corresponds to the maximum number of characters that can be stored in a single data value. 6. In Step 4, accept the default setting for Advanced Options. (Nothing is selected.) Click Finish to complete the import process. For more information about the advanced options, click the Help button. 7. Verify the results on the Output Data tab. To view generated DATA step code, click the Code tab. Partial Results (7 of 481 rows) 8. The task and the new SAS data set are accessible by double-clicking the Import Data icon in the project. You can rename the Import Data task to emphasize the name of the SAS data set that is created in the import process. Right-click the Import Data icon in the project tree or process flow and select Rename. Type Import Products. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-26 Chapter 2 Working with Data in a Project 9. Save the Chapter2 project. Setup for the Quiz (Live Web Only) Import the Products Excel file and create a SAS data set. 1. Create a new project. 2. Add the Products Excel file. (Select File Open Data.) 3. In Step 1, verify that the output SAS data set is Products. 4. In Step 2, verify that the ProductList worksheet is highlighted and that First row of range contains field names is selected. 5. Accept the default settings in Steps 3 and 4. 6. Select Finish to create the new SAS data set. 51 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.3 Importing Data Files 2-27 2.07 Quiz What do you select to make a change in the Import Data task, such as altering the name of the first variable? 52 Using the Import Data Task (continued) Part 2: Importing a Fixed-Width Text File Named Orders 1. In the Chapter2 project, select File Open Data from the menu bar. Navigate to the location of the course data and open orders.txt. The file is added to the project. Because it is not a structured data set, it cannot be used for reporting or querying. 2. To use the Import Data task to create a customized SAS data set from the text file, right-click orders.txt in the project tree or process flow. Select Import Data. You can also select File Import Data. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-28 Chapter 2 Working with Data in a Project 3. In Step 1 of the Import Data task, verify that the output data set is named orders. Accept the default library and click Next. 4. In Step 2, select Fixed columns. Select the File contains field names on record number check box and verify that the value is 1. Select the Rename columns to comply with SAS Naming conventions check box. 5. Click on the start of each field to define the column breaks. Click Next. You do not need to place a column break before the first field. 6. In Step 3, modify the properties of the variables as described below. a. Exclude the Employee_ID variable by clearing the Inc check box. b. Format Discount with a percent sign by clicking twice in the Output Format box and selecting . In the Numeric format category, scroll to select the PERCENTw.d format. Change the overall width to 5 and select OK. c. Format Profit as a currency value by changing the drop-down list in the Type column to Currency. Click Next. 7. In Step 4, do not make any changes. Click Finish to create the imported SAS data set. The Import Data task and orders data set are added to the project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.3 Importing Data Files 2-29 Partial Results (8 of 617 rows) 8. Save the Chapter2 project. Exercises Level 1 4. Creating a New SAS Data Set from an Excel Spreadsheet Add the Addresses spreadsheet from the Excel employee_info workbook. a. In the Chapter2 project, use the Import Data task to open the Excel employee_info workbook. Create a new SAS data set named employee_addresses. If you do not have the Chapter2 project, you can create a new project. You can save the data set in the default SAS library, which can be Sasuser, Work, or EGTASK. b. Read the data from the Addresses worksheet. Indicate that the first row contains variable names. c. Change the type of the Postal_Code variable to String. Scan all values in the column to determine a proper length. d. Modify each of the labels to replace underscores with spaces. e. Finish the Import Data task and view the data set. The variable names appear in the data grid, but labels are displayed in the reports. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-30 Chapter 2 Working with Data in a Project Partial Results (8 of 424 rows) f. Rename the Import Data task as Import Employee Addresses. g. Save the Chapter2 project. Level 2 5. Importing a Delimited Text File into a New SAS Data Set The employee_payroll.csv file is a comma-delimited text file. The first row in the text file contains appropriate names for the variables in the new SAS data set. The first few rows of the text file are shown below. Enclosing quotation marks are automatically removed when the file is imported. a. In the Chapter2 project, import the data in the employee_payroll.csv file to create a new SAS data set. b. Name the new SAS data set employee_payroll and indicate that the file is comma delimited. c. Do not include the columns for Marital_Status or Dependents. d. Change the type for Employee_ID to Number. e. Change the type for Salary to Currency. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.3 Importing Data Files 2-31 f. Change the output format for Birth_Date to a Day-Month-Year format (for example, 16-12-2008) with a display of a four-digit year. For Salary, use a currency format that displays no decimal places. Hint: Use the DDMMYYDw.d format with an overall width of 10. g. Change the label of Employee_Term_Date to Employee Termination Date. h. Finish the Import Data task and view the data in the new data set. Partial Results (8 of 424 rows) i. Rename the Import Data task as Import Employee Payroll. j. Save the Chapter2 project. Challenge 6. Modifying Generated DATA Step Code to Subset Data Modify the code generated by the Import Data task to subset the data set to include only current employees who do not have a termination date. a. Complete Exercise 5. b. In the Code tab, find the INFILE statement. Notice the program references a temporary text file Enterprise Guide created as part of the import process. Modify the task to set an advanced option to generalize the import step to run outside of Enterprise Guide. Rerun the task and examine the Code tab. How did the INFILE statement change? ______________________________________________________________________________ c. Right-click the Import Employee Payroll icon in the project tree or process flow and select Add as a Code Template. d. Modify the SAS program so that the name of the data set is Employee_Payroll_Active. e. Add a subsetting IF statement to the code to include only those employees with a missing value for Employee_Term_Date. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-32 Chapter 2 Working with Data in a Project If you enter the keyword IF and place your mouse pointer over the text, a syntax tooltip appears. The tooltip includes links . For additional help, you can click on any of the links to access documentation, samples, or papers f. Modify the code so that the Employee_Term_Date variable is not included in the output data set. g. Submit the code for execution and view the data in the new data set. Partial Results (8 of 308 rows) h. Save the Chapter2 project. 2.4 Solutions Solutions to Exercises 1. Assigning a Project Library Create the orion library to access the Orion customer and employee SAS data sets. a. In the Chapter2 project, use the Assign Project Library task to create the orion library and point to the location of the course data. If you do not have the Chapter2 project, you can create a new project. 1) Select Tools Assign Project Library. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.4 Solutions 2-33 2) In Step 1, type orion in the Name field and click Next. 3) In Step 2, verify that the engine is BASE. Navigate to or enter the location of the course data. Click Next. b. Include the access=readonly option in Step 3 of the task. Then test and assign the library. 1) Type access in the Name field. 2) Type readonly in the Value field and click Next. 3) Select Test Library and verify that OK is displayed. 4) Click Finish. c. View the orion library in the Server List pane. If you do not see the library or the data sets, select . your server and d. Save the Chapter2 project. 1) Select on the toolbar. 2) If the Save window appears, navigate to the location specified by your instructor. Type Chapter2 in the File name field and select Save. 2. Using the Server List for File Operations Use the server list to copy, paste, and delete data sets. a. The server list can be used to create a copy of a data set. To create a temporary copy, right-click the travel_expenses table in the orion library and select Copy. Then right-click the Work library and select Paste. b. Double-click the travel_expenses table in the Work library to add it to the project. c. Right-click travel_expenses in the project tree or process flow and select Delete. Is the table deleted from the library? No, only the shortcut is removed from the project, but the table remains in the library. d. Right-click travel_expenses in the Work library in the Server List pane and select Delete. Are you able to delete the table? Yes. If you have Write access to a library and the data sets within, you can move, copy, and delete files in the Server List pane. These actions cannot be undone, so be careful! e. Right-click travel_expenses in the orion library in the Server List pane and select Delete. Are you able to delete the table? No. Because you used the ACCESS=READONLY option when you defined the orion library, you cannot make changes to the contents. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-34 Chapter 2 Working with Data in a Project 3. Browsing a Data Set in the Data Grid When you view an existing data source in Enterprise Guide, you use the data grid. You can search the data grid for a specific value or variable name. Then you can hold, hide, or move columns while you browse the data. a. In the Chapter2 project, add the employee_master SAS data set. 1) Select File Open Data. 2) Navigate to the location of the course data. Select employee_master and select Open. b. Use the Find option in the Edit menu to search for Warehouse Manager in the Job_Title column. 1) Select Job_Title to highlight the column. 2) Select Edit Find from the menu bar. 3) Type Warehouse Manager in the Find What field. 4) Select Find Next and examine the search results. 5) Select Close. c. Hold the Employee_ID variable at the left side of the window so that it remains visible when you scroll to the right. Right-click specific columns to view the options. 1) Scroll to the left of the table. Right-click the column heading for the Employee_ID variable and select Hold from the pop-up menu. 2) Use the scroll bar at the bottom of the data grid to scroll through the other variables. Notice that the Employee_ID variable remains in view at the left of the window. d. Hide the Salary and Birth_Date variables. 1) Hold down the Ctrl key and select the Salary and Birth_Date variables. 2) Right-click on the heading for one of the selected variables and select Hide from the pop-up menu. e. Free (or remove the hold for) the Employee_ID variable and show the previously hidden variables. 1) Right-click on the heading for any variable and select Free. 2) Right-click again and select Show. f. Move the Manager_ID variable so that it appears to the right of Employee_Name. Moving the variable does not change the variable order in the data set; only the display order in the data grid is changed. 1) Highlight the variable Manager_ID by clicking on the column heading. 2) Click again on the column heading and drag it to the right of Employee_Name while you hold down the left mouse button. g. Close the data grid. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.4 Solutions 2-35 4. Creating a New SAS Data Set from an Excel Spreadsheet Add the Addresses spreadsheet from the Excel employee_info workbook. a. In the Chapter2 project, use the Import Data task to open the Excel employee_info workbook. Create a new SAS data set named employee_addresses. If you do not have the Chapter2 project, you can create a new project. You can save the data set in the default SAS library, which might be Sasuser, Work, or EGTASK. 1) Select File Open Data. 2) Navigate to the course data and select the Excel file employee_info. Select Open. 3) In Step 1, select Browse and change the name of the data set to employee_addresses. 4) Select Save Next. b. Read the data from the Addresses worksheet. Indicate that the first row contains variable names. 1) In Step 2, select the Addresses worksheet. 2) Verify that the First row of range contains field names check box is selected. 3) Click Next. c. Change the type of the Postal_Code variable to String. 1) In Step 3, click in the Type column for the Postal_Code row. 2) Click on the down arrow and select String. 3) Select OK to scan all values in the column to determine a proper length. d. Modify each of the labels to replace underscores with spaces. In the Label column, double-click to change the labels to Employee ID, Employee Name, Street ID, Street Number, Street Name, and Postal Code. e. Finish the Import Data task and view the data set. The variable names appear in the data grid, but labels are displayed in the reports. Click Finish. Partial Results (8 of 424 rows) Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-36 Chapter 2 Working with Data in a Project f. Rename the Import Data task as Import Employee Addresses. 1) Right-click Import Data (employee_info.xls [Addresses]) in the project tree or process flow and select Rename. 2) Type Import Employee Addresses. g. Save the Chapter2 project. 1) Select on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter2 in the File name field and select Save. 5. Importing a Delimited Text File into a New SAS Data Set The employee_payroll.csv file is a comma-delimited text file. The first row in the text file contains appropriate names for the variables in the new SAS data set. The first few rows of the text file are shown below. Enclosing quotation marks are automatically removed when the file is imported. a. In the Chapter2 project, import the data in the employee_payroll.csv file to create a new SAS data set. 1) Select File Import Data. 2) Navigate to the location of the course data and select employee_payroll.csv Open. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.4 Solutions 2-37 b. Name the new SAS data set employee_payroll and indicate that the file is comma delimited. 1) In Step 1 of the Import Data task, verify that the name of the new SAS data set is employee_payroll. 2) Click Next. 3) In Step 2, verify that a comma is the delimiter and that field names are read from the first record. Click Next. c. Do not include the columns for Marital_Status or Dependents. In Step 3 of the Import Data task, clear the check boxes for Marital_Status and Dependents. d. Change the type for Employee_ID to Number. Click in the Type column for the Employee_ID variable. Click on the down arrow and select Number. e. Change the type for Salary to Currency. Click in the Type column for the Salary variable. Click on the down arrow and select Currency. f. Change the output format for Birth_Date to a Day-Month-Year format (for example, 16-12-2008) with a display of a four-digit year. For Salary, use a currency format that displays no decimal places. Hint: Use the DDMMYYDw.d format with an overall width of 10. 1) Double-click in the Output Format column for the Birth_Date row and click . 2) Select the Date category in the Output Data Set Format window. 3) Select the DDMMYYDw.d format and change the Overall width field to 10. Select OK. 4) Double-click in the Output Format column for the Salary row and click . 5) Change the value of decimal places to 0. Select OK. g. Change the label of Employee_Term_Date to Employee Termination Date. In the Label column, double-click to change the label to Employee Termination Date. h. Finish the Import Data task and view the data in the new data set. Click Finish. Partial Results (8 of 424 rows) Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-38 Chapter 2 Working with Data in a Project i. Rename the Import Data task as Import Employee Payroll. 1) Right-click Import Data (employee_payroll.csv) in the project tree or process flow. Select Rename. 2) Type Import Employee Payroll. j. Save the Chapter2 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter2 in the File name field and select Save. 6. Modifying Generated DATA Step Code to Subset Data Modify the code generated by the Import Data task to subset the data set to include only current employees who do not have a termination date. a. Complete Exercise 5. (See the solutions above to complete this exercise.) b. In the Code tab, find the INFILE statement. Notice the program references a temporary text file Enterprise Guide created as part of the import process. Modify the task to set an advanced option to generalize the import step to run outside of Enterprise Guide. Rerun the task and examine the Code tab. How did the INFILE statement change? 1) Double-click the Import Employee Payroll task in the project and select the Code tab. 2) Scroll down to find the INFILE statement. 3) Select Modify Task. Click Next three times to advance the step 4. Select the Generalize import step to run outside SAS Enterprise Guide check box. 4) Click Finish Yes when prompted to replace the results. 5) Select the Code tab and scroll to find the INFILE statement. The INFILE statement now references the original text file in the location of the course data. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.4 Solutions 2-39 c. Right-click the Import Employee Payroll icon in the project tree or process flow and select Add as Code Template. d. Modify the SAS program so that the name of the data set is Employee_Payroll_Active. In the DATA statement, change the name of the output data set to Employee_Payroll_Active. e. Add a subsetting IF statement to the code to include only those employees with a missing value for Employee_Term_Date. Following the INPUT statement, insert the following statement: if Employee_Term_Date=.; If you enter the keyword IF and place your mouse pointer over the text, a syntax tooltip appears. For additional help, you can click on any of the links to access documentation, samples, or papers. f. Modify the code so that the Employee_Term_Date variable is not included in the output data set. 1) Find the DROP statement in the DATA step. 2) Add Employee_Term_Date to this statement so that it appears as follows: drop Marital_Status Dependents Employee_Term_Date; Spacing and case might be different when the above is compared to the generated code. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-40 Chapter 2 Working with Data in a Project g. Submit the code for execution and view the data in the new data set. Partial Results (8 of 308 rows) Select Run to submit the code. h. Save the Chapter2 project. 1) Select on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter2 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.4 Solutions Solutions to Student Activities (Polls/Quizzes) 2.02 Multiple Answer Poll – Correct Answers Which names follow the standard SAS naming rules? a. data5mon b. 5monthsdata c. data#5 d. five months data e. five_months_data f. FiveMonthsData 10 2.03 Multiple Choice Poll – Correct Answer Open the employee_info data set. Click the Properties button on the toolbar and select Columns. What is the type of the variable Postal_Code? a. character b. numeric 17 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-41 2-42 Chapter 2 Working with Data in a Project 2.04 Quiz – Correct Answer What two things happen when you double-click customers.sas7bdat? 1. The data is opened in the data grid. 2. A shortcut to the customers SAS data set is added to the project. 28 2.05 Quiz – Correct Answer 1. Select View Server List or click the Server List icon in the Resources pane below the project tree. 2. Expand Servers your server name Libraries. What libraries are listed? Possible answers: Work , Sashelp, Sasuser, EGTASK, MAPS 35 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2.4 Solutions 2.06 Quiz – Correct Answer Select File Open Data and navigate to the location of the course data if necessary. What happens when you open the Excel products file? The Import Data task automatically opens. 47 2.07 Quiz – Correct Answer What do you select to make a change in the Import Data task, such as altering the name of the first variable? Modify Task 53 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 2-43 2-44 Chapter 2 Working with Data in a Project Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Chapter 3 Getting Started with Tasks 3.1 Introduction to Tasks and Wizards ............................................................................... 3-3 3.2 Creating a Frequency Report ...................................................................................... 3-10 Demonstration: Generating a One-Way Frequency Report ................................................. 3-13 Exercises .............................................................................................................................. 3-15 3.3 Generating HTML, PDF, and RTF Output .................................................................... 3-18 Demonstration: Modifying Output Format ............................................................................ 3-22 3.4 Creating a Listing Report ............................................................................................. 3-24 Demonstration: Using the List Data Task to Create a Report .............................................. 3-25 3.5 Filtering Data in a Task................................................................................................. 3-28 Demonstration: Filtering Data in a Task ............................................................................... 3-30 Exercises .............................................................................................................................. 3-33 3.6 Creating a Graph .......................................................................................................... 3-36 Demonstration: Creating a Bar Chart................................................................................... 3-39 Exercises .............................................................................................................................. 3-44 3.7 Solutions ....................................................................................................................... 3-47 Solutions to Exercises .......................................................................................................... 3-47 Solutions to Student Activities (Quizzes/Polls) ..................................................................... 3-63 3-2 Chapter 3 Getting Started with Tasks Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.1 Introduction to Tasks and Wizards 3-3 3.1 Introduction to Tasks and Wizards Objectives Define a SAS Enterprise Guide task. Describe methods for accessing tasks in SAS Enterprise Guide. State the functions of common features in the task dialog boxes. 3 What Is a Task? A task is a specific type of analysis, report, or data manipulation that you can perform against data in a project. Tasks 4 SAS Enterprise Guide tasks generate SAS code and formatted results. Tasks include SAS procedures that range from simple data listings to more complex analytical procedures. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-4 Chapter 3 Getting Started with Tasks 3.01 Quiz Select the Tasks menu in your SAS Enterprise Guide session. Which tasks might be the most helpful when you work with your data? 5 Tasks can also be accessed via the Task List window. You can open the window by selecting View Task List. To see the task names and the corresponding SAS procedures, select Tasks by Name from the drop-down list. You can also alphabetize the list by procedure name by clicking on the SAS Procedures heading. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.1 Introduction to Tasks and Wizards Associating a Task with Data Tasks are usually associated with a particular data source in the project. 2. Select a task. 1. Highlight the data in the project tree. 6 Selecting a Task Tasks can also be selected from the menu in the data grid. 7 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-5 3-6 Chapter 3 Getting Started with Tasks Tasks: Selection Pane Each task dialog box follows a similar format that includes a Selection pane that lists the options available for that task. Selection Pane 8 Tasks: Data Select Data to define how columns are used to generate the task result. Help is displayed when a Task role is selected. 9 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.1 Introduction to Tasks and Wizards 3.02 Quiz 1. Select File New Project. 2. Select File Open Data and navigate to the location of the course data. 3. Select Orion_Profit Open. 4. In the data grid, select Describe Distribution Analysis. 5. Drag Customer_Age to the Analysis variables role. 6. Right-click Customer_Age and select Properties. Which column attributes can you modify? 10 Tasks: Titles and Footnotes Select Titles to add descriptive titles and footnotes. Type custom titles or footnotes. 12 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-7 3-8 Chapter 3 Getting Started with Tasks Tasks: Properties Task properties can be modified to rename the task, examine task attributes, and modify the output format. 13 Wizard View Selected tasks have a wizard view that can be used to set up the task results quickly. 14 The Summary Statistics, Summary Tables, Bar Chart, Pie Chart, and Line Plot tasks have an optional wizard. The wizards and traditional tasks are listed separately in the task menus. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.1 Introduction to Tasks and Wizards Working with Tasks Task code, log, output data, and results are available for viewing and further analysis through tabs and menus. 15 Working with Tasks Tasks can be refreshed or modified from the Project Tree or Process Flow window, or the Results tab. 16 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-9 3-10 Chapter 3 Getting Started with Tasks 3.2 Creating a Frequency Report Objectives Access the One-Way Frequencies task. Generate a one-way frequency report and bar chart. 19 Business Scenario Orion management wants a report that counts the number of products offered for each category. 20 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.2 Creating a Frequency Report One-Way Frequencies Task The One-Way Frequencies task can be used to generate frequency counts, percentages, graphs, and statistical tests to analyze the distribution of your data. 21 A one-way frequency report shows the distribution of a variable’s values. To access the One-Way Frequencies task, select Tasks Describe One-Way Frequencies from the menu bar. You can also select Describe One-Way Frequencies from the data grid. 3.03 Multiple Choice Poll Highlight any data source in the project and select Tasks Describe One-Way Frequencies. Which task role requires a variable assignment? a. Analysis variables b. Frequency count c. Group analysis by 22 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-11 3-12 Chapter 3 Getting Started with Tasks One-Way Frequencies: Task Roles The One-Way Frequencies task produces a one-way frequency report for each variable included in the Analysis variables role. 24 To generate crosstabulation tables, also known as contingency tables, use the Table Analysis task. One-Way Frequencies: Task Roles The Group analysis role can be used to produce separate frequency reports for each unique value of a variable. 25 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.2 Creating a Frequency Report 3.04 Quiz Open the One-Way Frequencies task again by selecting Tasks Describe One-Way Frequencies. In the Tasks Roles window, select Help and read the description for the Frequency count role. How many variables can be assigned to this role? 26 One-Way Frequencies: Additional Options Use additional options to customize the report or create a data set with frequencies and percentages. 28 Generating a One-Way Frequency Report Orion management wants a report that summarizes the number of products offered for each category. Use the One-Way Frequencies task to generate the report. 1. Create a new project and add the products SAS data set from the course data. 2. To open the One-Way Frequencies task, select Describe One-Way Frequencies. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-13 3-14 Chapter 3 Getting Started with Tasks You can also select Tasks Describe One-Way Frequencies from the menu bar. 3. Drag Product_Category from the Variables to assign pane and drop it on the Analysis variables role in the Task roles pane. 4. Select Statistics in the Selection pane. To include only the frequency and percent statistics, select Frequencies and percentages in the Frequency table options pane. 5. Select Results in the Selection pane. To create a data set including the frequency counts and percentages, select the Create data set with frequencies and percentages check box. Click Browse and type ProductCounts in the File name field. Click Save. 6. Select Titles in the Selection pane. To modify the title, clear the Use default text check box. In the Text field, delete the default title of One-Way Frequencies Results and type Number of Products per Category. In the Titles window, when Analysis is selected in the Section pane, the Text area displays only your title text. To display the footnote text, select Footnotes in the Section pane. 7. To give the One-Way Frequencies task icon a more descriptive name in the project, select Properties in the Selection pane and click Edit. Type Products per Category in the Label field. Click OK. 8. Click Run to generate the report and examine the results. View the report on the Results tab. Click the Output Data tab to view the data set. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.2 Creating a Frequency Report 3-15 Partial Output 9. To remove the title, The FREQ Procedure, that is added to the output automatically, select Tools Options. Select Tasks General from the Selection pane. Clear the Include SAS procedure titles in results check box. Click OK to close the Options window. The Tasks General pane also includes an option that enables you to change or delete the default footnote. 10. To rerun the task, select Refresh on the Results tab. 11. Save the project as Chapter3. Exercises Level 1 1. Using the One-Way Frequencies Task to Generate Frequency Counts and Percentages a. In the Chapter3 project, add the employee_organization data set. If you do not have the Chapter3 project, you can create a new project. b. Use the One-Way Frequencies task to generate a report that analyzes the Department column. c. Include a horizontal bar chart as part of the report. d. Add the title Employee Counts by Department and delete the footnote. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-16 Chapter 3 Getting Started with Tasks e. Modify the task properties to change the task label to Dept Freq Report. f. Generate the report and examine the results. g. Modify the One-Way Frequencies task to display only frequencies and percentages. Rerun the report and replace the results. h. Save the Chapter3 project. Partial Results (graph not shown) Final results assume that the Include SAS procedure titles in results option is turned off. You can modify this option by selecting Tools Options Tasks General. Level 2 2. Using the One-Way Frequencies Task to Produce a Grouped Report a. In the Chapter3 project, add the employee_organization data set if it is not already included. b. Use the One-Way Frequencies task to analyze Job_Title, grouped by Department. Include only frequencies and percentages. c. Order the output report by descending frequencies. Scroll down in the Results window to find the Order output data by option. d. Add the title Employees Job Title and delete the footnote. e. Change the task label to Jobs by Dept Freq Report and run the task. f. Save the Chapter3 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.2 Creating a Frequency Report 3-17 Partial Results Challenge 3. Producing a Grouped Frequency Report with Group Values in the Titles a. Complete the Level 2 exercise and continue with the next steps. b. Modify the Jobs by Dept Freq Report task. Change the title to Employees by Job Title in #byval(department) Department. This syntax places the name of each distinct group in the title. Documentation about the #BYVAL(variable) syntax can be found by selecting Help SAS on the Web SAS Product Documentation. Search for #BYVAL. c. Access the code in the One-Way Frequencies task by selecting Preview Code Insert Code. d. To remove the secondary BYLINE title, add the following statement at the earliest point of insertion in the task code: options nobyline; Documentation about the BYLINE and NOBYLINE system options can be found by selecting Help SAS Syntax Help. On the Index tab, type byline. e. To reinstate the secondary BYLINE title for future tasks, add the following statement at the end of the task code: options byline; f. Create the modified report and replace the results. g. Save the Chapter3 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-18 Chapter 3 Getting Started with Tasks Partial Results 3.3 Generating HTML, PDF, and RTF Output Objectives List output format options. Compare the advantages of each output format. 34 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.3 Generating HTML, PDF, and RTF Output Business Scenario Orion management wants to publish a product categories frequency report in HTML format on the intranet. 35 Task Output Formats By default, SAS Enterprise Guide produces task results in SAS Report format. However, you can also choose to generate HTML, PDF, RTF, or text output. 36 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-19 3-20 Chapter 3 Getting Started with Tasks SAS Report Format The SAS Report format enables you to combine multiple task results into a single report. This report can be viewed in SAS applications or exported as HTML, XML, or PDF files. Banner image Bar Chart task One-Way Frequencies task Summary Statistics task 37 3.05 Multiple Answer Poll Which output formats would you like to use in your work? a. b. c. d. e. SAS Report HTML PDF RTF text 38 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.3 Generating HTML, PDF, and RTF Output 3.06 Quiz What are some advantages of each format? 39 Summary of Output Formats SAS Report Software required Other SAS applications for viewing outside of SAS Enterprise Guide HTML Any browser (Internet Explorer) RTF PDF Any word Adobe processor Reader (Microsoft Word) Text Any text viewer (Notepad) No No No Ability to combine Yes (File Yes results into a New (Tools (only with (only with (only with single document Report) HTML code) code) code) Document) Ability to edit Yes results in viewing software No Yes No Yes Results formatted Yes for printing No Yes Yes Yes 41 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-21 3-22 Chapter 3 Getting Started with Tasks Default Output Format The default output format can be set by selecting Tools Options Results General. Custom options can also be set for each of the output formats. 42 Overriding the Default Output Format The properties of individual tasks can be modified to override the default format and produce other types of results. 43 Modifying Output Format This demonstration illustrates modifying the properties of a task to produce HTML, PDF, RTF, or text output. 1. In the Chapter3 project, double-click the Products per Category icon in the project tree or process flow to view the Results tab. Select Modify Task. 2. Select Properties in the Selection pane and click Edit. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.3 Generating HTML, PDF, and RTF Output 3-23 3. Select Results in the Selection pane. Select Customize result formats, styles, and behavior. Select HTML, PDF, RTF, and Text to view all output possibilities. Change the drop-down menu next to HTML to BarrettsBlue and click OK. 4. Click Run to generate the report in all output formats. Click Yes when you are prompted to replace the results. Click the various Results tabs to view each report. The SAS Report, HTML, PDF, and text results can all be viewed directly on the Results tabs. Clicking the RTF Results tab opens the results in Microsoft Word. Partial Results (Notice the SAS Report, HTML, PDF, RTF, and Listing tabs.) 5. Save the Chapter3 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-24 Chapter 3 Getting Started with Tasks 3.07 Quiz (Live Web Only) 1. Double-click on any One-Way Frequencies task in the project. On the Results tab, select Modify Task. 2. Select Properties Edit Results. 3. Select Customize results formats, styles, and behaviors. Select the HTML style. 4. In the drop-down list, change the style to EGDefault. 5. Select OK Run. Select Yes when you are prompted to replace the results. 46 3.4 Creating a Listing Report Objectives Access the List Data task. Set report options. Group the report. 49 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.4 Creating a Listing Report Business Scenario The Marketing Department at Orion Star wants to create a customer list that includes ID, name, and age group. A separate report should be generated for each country. 50 List Data Task The List Data task displays rows of data in a data set, including options to group or sum columns. Group rows. Display each row. Sum columns. 51 Using the List Data Task to Create a Report Use the List Data task to print a list of customers including ID, name, and age group. A separate report should be generated for each country. 1. In the Chapter3 project, add the customers data set in the project tree or process flow. If you do not have the Chapter3 project, you can create a new one. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-25 3-26 Chapter 3 Getting Started with Tasks 2. To open the List Data task, select Describe List Data from the data grid. The List Data dialog box appears and enables you to select columns and assign them to specific roles to generate a report. 3. Drag Customer_ID, Customer_Name, and Customer_Age_Group from the Variables to assign pane to the List variables role. The columns placed in this role are printed in the report in the order in which they are listed. Also drag and drop Customer_Country to the Group analysis by role. A separate report is produced for each country. The button can also be used to assign variables to roles. 4. To specify a title for the report, select Titles in the Selection pane. Clear the Use default text check box. In the Text field, delete the default title and type Orion Star Customer List. 5. Click Run to generate the report. Partial Results 6. To modify the task to change the column labels and remove the row numbers, select Modify Task on the Results tab. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.4 Creating a Listing Report 7. The Identifying label role can be used to replace the Row number column with a column from the data. Drag Customer_ID from the List variables role to the Identifying label role. To remove the row number without assigning a column to the Identifying label role, select Options in the Selection pane and deselect Print the row number. 8. To specify a label to be used in this task for the Customer_Name column, right-click the column name in the Task roles pane. Select Properties from the menu. 9. In the Properties dialog box, type Name in the Label field and click OK. 10. Repeat Step 8 to change the label for Customer_Age_Group to Age Group. By default, variable names still appear in the task dialog box. To view labels, right-click on a variable and select Show Labels. 11. By default, the task icon in the project is labeled List Data. Give the task a more descriptive label so that it is easily identified in the project. Select Properties Edit and type Customer List by Country in the Label field. Click OK. 12. Click Run to generate the report. Click Yes when you are prompted to replace the results. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-27 3-28 Chapter 3 Getting Started with Tasks Partial Results 13. Click on the menu bar to save the Chapter3 project. 3.5 Filtering Data in a Task Objectives Filter data directly in a task. Using various operators, build multiple filter criteria. 55 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.5 Filtering Data in a Task Business Scenario The Marketing Department at Orion Star wants to run a special promotion targeted at high-activity Orion Club members who were born in 1970 or later. 56 Filtering Input Data The Edit button enables you to apply filters on the input data to select which rows should be included in the task or wizard. 57 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-29 3-30 Chapter 3 Getting Started with Tasks Edit Data and Filter Window The Edit Data and Filter window enables you to build multiple filters using operators and data values. 58 Filters can be built only with the available operators in the Edit Data and Filter window. More complex filters using functions or advanced comparisons can be used in the Filter and Sort task or the Query Builder. Available operators are as follows: • Equal to/Not equal to • In a list/Not in a list • Less than/Less than or equal to • Greater than/Greater than or equal to • Between/Not between • Contains/Does not contain • Is missing/Is not missing Filtering Data in a Task The Marketing Department at Orion Star wants to run a special promotion targeted at high-activity Orion Club members who were born in 1970 or later. Modify the List Data task to add an appropriate filter. 1. In the Chapter3 project, double-click the customers data set in the project tree or process flow. 2. In the data grid, select Describe List Data. 3. To include only high-activity customers born in 1970 or later, begin by selecting Edit. 4. Select Customer_Type from the first drop-down list and In a list from the second drop-down list. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.5 Filtering Data in a Task 3-31 5. Next to the third box, click to retrieve specific values from the data. Select Add Values Get Values to see the distinct data values in the Customer_Type column. You might need to resize the window to see the full values. Hold down the Ctrl key and select the second and fourth values that indicate high activity. Click OK. 6. Verify that the following values were selected and click OK: 7. To add another filter, select the drop-down box next to the data values and select AND. The AND operator requires that both filter conditions be true for a row to be included in the report. 8. Select Customer_BirthDate in the first box and Greater than or equal to in the second box. Click to view the data values. Notice that the values are SAS dates, which are stored as the number of days since 01JAN1960. 9. To filter based on a specific date, you can use the SAS date constant. Click Cancel to return to the third box and type "01JAN1970"d. SAS converts the date within quotation marks to the SAS date equivalent before filtering the data. Click OK. You must use the form "ddMONyyyy"d (for example, "18APR1987"d) to reference a SAS date constant in the expressions. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-32 Chapter 3 Getting Started with Tasks 10. In the Data window, add Customer_Name and Customer_Type to the List variables role and Customer_ID to the Identifying label role. 11. Modify the title to reflect the filtered data. Select Titles in the Selection pane. Delete the default title and type Orion Star Customer List on the first line and High Activity Customers Born 1970 or Later on the second line. 12. Rename the task to indicate the filter that was applied. Select Properties Edit. Type High Act/1970+ in the Label field. Click OK. 13. Click Run and examine the final report. 14. To more fully document the project to indicate the filter applied in the task, you can use notes. Highlight the High Act/1970+ task in the project tree or process flow, click , and select Note. 15. The note can include any text to explain or document items within the project. Type This report includes customers in high activity groups born in 1970 or later. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.5 Filtering Data in a Task 3-33 16. To rename the Note icon in the project, click the Properties button and type Filter Detail in the Label field. Click OK. 17. Save the Chapter3 project. Exercises Level 1 4. Using the List Data Task to Display San Diego Employees a. In the Chapter3 project, add the employee_addresses data set. If you do not have the Chapter3 project, you can create a new project. b. Create a report with the List Data task and show the Employee_Name, Street_Number, Street_Name, City, and Postal_Code columns. Identify each row with the Employee_ID column. c. Modify the properties for the columns so that the report displays the following labels: Employee ID, Name, Street Number, Street Name, City, and Postal Code. d. Create the report. e. Modify the List Data task so that only the employees from San Diego are included in the report. f. Delete the City column from the report. g. Change the title to Employee List for San Diego and delete the footnote. h. Modify the task properties to change the task label to San Diego List. i. Run the task and replace the results. j. Save the Chapter3 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-34 Chapter 3 Getting Started with Tasks Partial Results Level 2 5. Creating a Grouped List Report for All Employees from Australia a. In the Chapter3 project, add the employee_addresses data set if it is not already included. b. Create a report with the List Data task and show the Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code columns. c. Modify the properties for the columns so that the report displays the following labels: Employee ID, Name, Street Number, Street Name, and Postal Code. d. Generate the report. e. Modify the List Data task so that only the employees from Australia are included in the report. Include all variations of AU. f. Group and identify the report by City. g. Provide an appropriate title for the report. h. Change the task label to AU List. i. Rerun the report and replace the results. j. Save the Chapter3 project. Partial Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.5 Filtering Data in a Task 3-35 Challenge 6. Creating a List Report Including a Complex Filter The ability to filter data in tasks using the point-and-click Edit Data and Filter window is limited to the operators provided in the drop-down lists. To create filters that include SAS functions, you can modify the code to add a custom WHERE statement in the SAS program generated by the task. a. In the Chapter3 project, add the employee_payroll SAS data set. b. Use the List Data task to display the Employee_ID and Birth_Date columns. Format Birth_Date and use the DATE9. format. c. Modify the task code to insert a WHERE statement in the PROC PRINT step of the SAS program. The WHERE statement should select only those employees with an October birthday. Hint: Use the MONTH function. Documentation about the MONTH function can be accessed by selecting Help SAS Syntax Help. On the Index tab, type MONTH Function. d. Do not print the row numbers. e. Add the title Employees with October Birthdays. f. Change the task label to Oct Birthday List and run the task. g. Save the Chapter3 project. Partial Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-36 Chapter 3 Getting Started with Tasks 3.6 Creating a Graph Objectives Name the types of graphs that are supported in SAS Enterprise Guide. State the differences among the output formats that are supported in SAS Enterprise Guide. Create a bar chart. 64 Business Scenario Management wants to see a comparison of average customer age by country. 65 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.6 Creating a Graph Graphs Using SAS Enterprise Guide 66 For more details about the graph output formats, select Help SAS Enterprise Guide Help. Type setting results and graph options on the Search tab and select the third returned entry. 3.08 Multiple Answer Poll Select Tasks Graph to see the available graphs. Which types of graphs would you like to use to display your data? a. bar chart b. pie chart c. line plot d. scatter plot e. surface plot f. map g. other 67 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-37 3-38 Chapter 3 Getting Started with Tasks Bar Chart Wizard The Bar Chart Wizard enables you to do the following: 1. select and filter the data 2. assign variables to roles 3. customize appearance 4. set titles and footnotes 68 Bar Chart: Advanced View To make further enhancements to the graph, you might need to open the task in Advanced View. This action gives you access to additional options that are not available in the wizard. After you run a task in Advanced View, you cannot return to the wizard. 69 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.6 Creating a Graph 3-39 Bar Chart Task: Advanced View The Advanced View of the Bar Chart task includes additional options, such as changing the bar shape, formatting data values, and modifying reference lines. 70 Creating a Bar Chart To better understand the demographics of the Orion Star customers, management wants to see a comparison of average customer age by country. Use the Bar Chart Wizard and task to create the result. 1. In the Chapter3 project, highlight the customers data set in the project tree or process flow. Select Tasks Graph Bar Chart Wizard. 2. In Step 1, verify that customers is the active data set. Click Next. 3. In Step 2, select the Horizontal bar chart check box. To create a separate bar for each country, select Customer_Country in the Bars drop-down list. 4. To order the bars in descending height or length, click select Descending bar height OK. . In the Properties window, 5. To set the length of the bars based on average age, select Customer_Age from the Bar length drop-down list. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-40 Chapter 3 Getting Started with Tasks 6. Click , change the statistic to Average, and click OK. Click Next. 7. In Step 3, make the following changes: a. Select the 3D chart check box. b. In the Color bars by drop-down list, select Bar category. c. Select the Data labels check box and select Average from the drop-down list. d. Select the Use reference lines check box. e. Click Next. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.6 Creating a Graph 3-41 8. In Step 4, change the title to Average Customer Age by Country and click Finish. 9. To make additional modifications not allowed in the Bar Chart Wizard, open the task in Advanced View. Right-click the Bar Chart icon in the project tree or process flow. Select Open Open in Advanced View. 10. In Advanced View, you can apply formats to variables to modify the appearance. Select Data in the Selection pane. To format Customer_Age so that the data labels are rounded to one decimal place, right-click Customer_Age and select Properties. 11. Select Change to apply a format. In the Formats window, select Numeric from the Categories pane and w.d from the Formats pane. Change the overall width to 4 and the decimal places to 1. Click OK OK to return to the task dialog box. 12. Select Layout in the Selection pane. Change the shape to Cylinder. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-42 Chapter 3 Getting Started with Tasks 13. Select Horizontal Axis in the Selection pane. Type Average Customer Age in the Label box and change the font size to 12. 14. Select Reference Lines in the Selection pane. Click the Specify values for lines check box, type 20, and then select Add. Repeat for 40 and 60. Change the style to Dashed and the color to light gray. 15. Select Vertical Axis in the Selection pane. Type Country in the Label box. 16. Select Properties in the Selection pane and select Edit. In the General pane, change the task label to Avg Age/Country. 17. The default graph format is ActiveX. To be able to interact with the graph after the task runs, it must be in HTML format. In the Results pane, select Customize result formats, styles, and behavior and select HTML. Click OK. 18. Click Run to generate the graph and select Yes when you are prompted to replace the results. Click the Results - HTML tab. To access the ActiveX functionality that enables further exploration and modification of the graph, right-click on the graph and select Graph Properties. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.6 Creating a Graph 3-43 19. On the Graph tab, change the style to Curve and a new color scheme is applied. 20. Click the Bar tab and select Font. Increase the data label font size to 10. Click OK OK to return to the graph and apply the changes. 21. Another change that can be made is to switch the chart type. Right-click on the graph and select Chart Type Vertical Bar. 22. A toolbar is also available to resize, rotate, and subset the graph. Right-click on the graph and select and use the mouse to drag the cursor across the top three bars. The chart Graph Toolbar. Click to reset the graph. is redrawn to include only the outlined portion. Click 23. To save the graph, you can save the image as a JPEG file (saves any interactive changes that you made as a static image) or you can export the graph as an HTML file. (Interactivity is preserved but changes that you made interactively are lost.) To export the HTML result, select Export Export HTML - Avg Age/Country. Navigate to the desired location and select Save. Graphs can also be copied and pasted into Microsoft Word, Excel, and PowerPoint. Right-click on the graph in Enterprise Guide, and select Copy. Then right-click in Word, Excel, or PowerPoint, and select Paste. To maintain ActiveX interactivity in these applications, consider the following: • Microsoft Excel: The graph automatically retains the ActiveX functionality. • Microsoft Word: After the graph is pasted into a document, you must exit Design Mode. This can be done in Office 2007 by selecting Developer Design Mode. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-44 Chapter 3 Getting Started with Tasks • Microsoft PowerPoint: To be able to interact with the ActiveX graph while in View mode in PowerPoint, you must first change a graph property before copying and pasting the graph. Right-click on the graph in Enterprise Guide and selecting Graph Properties. On the Graph tab, select Advanced. In the Advanced Settings window, click the Display interactive graphs check box. After you modify the graph properties, copy and paste the graph into PowerPoint. 24. Save the Chapter3 project. Exercises Level 1 7. Creating a Three-Dimensional Vertical Bar Chart for Salary by City a. In the Chapter3 project, add the employee_detail SAS data set. If you do not have the Chapter3 project, you can start a new project. b. Open the employee_detail table in the data grid and open the Bar Chart Wizard. In Step 2 of the Bar Chart Wizard, create a vertical bar chart that shows the sum of Salary for each city. Arrange the bars in descending height. c. In Step 3 of the Bar Chart Wizard, change the following attributes: • Create a three-dimensional chart. • Color each bar differently. • Print data labels at the top of each bar with the sum of Salary. • Label the bar height (vertical) axis as Total Salary. • Turn on reference lines. d. In Step 4 of the Bar Chart Wizard, name the graph Total Salary for Each City. e. Create the graph. f. Right-click the Bar Chart task in the project tree or process flow. Select Open Open in Advanced View. Make the following modifications: • Modify the format applied to Salary so that you round values to the nearest dollar. • Change the bar shape to a prism. • Change the reference lines to dashed and light gray. g. Modify the properties of the Bar Chart task to create an HTML report along with the default SAS Report format. h. Run the task and replace the results. Save the project as Chapter3. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.6 Creating a Graph 3-45 Level 2 8. Using the Pie Chart Wizard to Analyze Salary by Department a. In the Chapter3 project, add the employee_detail SAS data set if necessary. b. Use the Pie Chart Wizard to generate a graph where the slices represent the sum of Salary for each department. c. Show the department name and salary total outside each slice, and the percentage of total salary on the inside of each slice. Make the chart three-dimensional. Generate the graph. d. Change the title to Total Salary by Department and run the task. e. Open the task in Advanced View to apply an appropriate format that rounds the display of Salary to the nearest dollar. Create the graph in HTML as well as in SAS Report format. f. Run the task and save the Chapter3 project. You might see an exclamation point on the task icon. This indicates that there is a warning in the log. Examine the log to determine whether the warning affects the output. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-46 Chapter 3 Getting Started with Tasks Challenge 9. Modifying the Pie Chart Task Code to Isolate a Slice a. Complete the Level 2 exercise to generate a pie chart that illustrates total salary by department. b. Modify the Pie Chart task to slightly separate the Sales slice from the remainder of the pie. This can be done by inserting the explode="Sales" option at the end of the PIE3D statement. c. Run the task and replace the results. Save the Chapter3 project. You might see an exclamation point on the task icon. This indicates that there is a warning in the log. Examine the log to determine whether the warning affects the output. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 3-47 3.7 Solutions Solutions to Exercises 1. Using the One-Way Frequencies Task to Generate Frequency Counts and Percentages a. In the Chapter3 project, add the employee_organization data set. If you do not have Chapter3 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_organization Open. b. Use the One-Way Frequencies task to generate a report that analyzes the Department column. 1) If necessary, double-click the employee_organization icon in the project tree or process flow to open it in the data grid. 2) To open the One-Way Frequencies task, select Describe One-Way Frequencies from the task menu bar. 3) In the Data selection pane of the One-Way Frequencies task dialog box, drag and drop Department to the Analysis variables role. c. Include a horizontal bar chart as part of the report. 1) Select Plots in the Selection pane. 2) Select Horizontal. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-48 Chapter 3 Getting Started with Tasks d. Add the title Employee Counts by Department and delete the footnote. 1) Select Titles in the Selection pane. 2) Select Analysis and clear the Use default text check box. 3) Delete the current text and type Employee Count by Department. 4) Select Footnote in the Selection pane and clear the Use default text check box. Delete the default text. e. Modify the task properties to change the task label to Dept Freq Report. 1) Select Properties in the Selection pane. 2) Select Edit. 3) Delete the text in the Label field and type Dept Freq Report. 4) Click OK. f. Generate the report and examine the results. 1) Click Run. 2) If necessary, click the Results tab to view the report. g. Modify the One-Way Frequencies task to display only frequencies and percentages. Rerun the report and replace the results. 1) Select Modify task from the Results tab to reopen the One-Way Frequencies task. 2) Select Statistics in the Selection pane and select the Frequencies and Percentages radio button in the Frequency Table options pane. 3) Click Run. 4) Click Yes when you are prompted to replace the results. h. Save the Chapter3 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 3-49 Partial Results (graph not shown) Final results assume that the Include SAS procedure titles in results option is turned off. You can modify this option by selecting Tools Options Tasks General. 2. Using the One-Way Frequencies Task to Produce a Grouped Report a. In the Chapter3 project, add the employee_organization data set if it is not already included. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_organization Open. b. Use the One-Way Frequencies task to analyze Job_Title, grouped by Department. Include only frequencies and percentages. 1) If necessary, double-click the employee_organization icon in the project tree or process flow to open it in the data grid. 2) To open the One-Way Frequencies task, select Describe One-Way Frequencies from the data grid. 3) In the Data window, assign Job_Title to the Analysis variables role and Department to the Group analysis by role. 4) Select Statistics in the Selection pane and select the Frequencies and Percentages radio button in the Frequency Table options pane. c. Order the output report by descending frequencies. Scroll down in the Results window to find the Order output data by option. 1) Select Results in the Selection pane. 2) Scroll to the bottom and change the Order output data by option to Descending frequencies. d. Add the title Employees by Job Title and delete the footnote. 1) Select Titles in the Selection pane. 2) Select Analysis and clear the Use default text check box. 3) Delete the default text and type Employees by Job Title as the title. 4) Select Footnote in the Selection pane. Clear the Use default text check box. Delete the default text. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-50 Chapter 3 Getting Started with Tasks e. Change the task label to Jobs by Dept Freq Report and run the task. 1) Select Properties in the Selection pane. 2) Select Edit. 3) Delete the text in the Label field and type Jobs by Dept Freq Report. 4) Click OK. 5) Click Run to generate the report. f. Save the Chapter3 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. Partial Results 3. Producing a Grouped Frequency Report with Group Values in the Titles a. Complete the Level 2 exercise and continue with the next steps. b. Modify the Jobs by Dept Freq Report task. Change the title to Employees by Job Title in #byval(department) Department. This syntax places the name of each distinct group in the title. Documentation about the #BYVAL(variable) syntax can be found by selecting Help SAS on the Web SAS Product Documentation. Search for #BYVAL. 1) On the Results tab of the One-Way Frequencies task created in the Level 2 exercise, select Modify Task. 2) Select Titles in the Selection pane. 3) Change the title to Employees by Job Title in #byval(department) Department. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 3-51 c. Access the code in the One-Way Frequencies task by selecting Preview Code Insert Code. 1) In the lower left part of the task dialog box, click the Preview code button to open the Code Preview for Task window. 2) In the upper left part of this window, click the Insert Code button to open the User Code window. d. To remove the secondary BYLINE title, add the following statement at the earliest point of insertion in the task code: options nobyline; Documentation about the BYLINE and NOBYLINE system options can be found by selecting Help SAS Syntax Help. On the Index tab, type byline. 1) Double-click on the first line that indicates <double-click to insert code>. 2) In the Enter User Code window, enter the following SAS OPTIONS statement: options nobyline; 3) Click OK. e. To reinstate the secondary BYLINE title for future tasks, add the following statement at the end of the task code: options byline; 1) Double-click on the last line that indicates <double-click to insert code>. 2) In the Enter User Code window, enter the following SAS OPTIONS statement: options byline; 3) Click OK to close the Enter User Code window. 4) Click OK to close the User Code window. 5) Close the Code Preview for Task window by clicking in the upper right corner. f. Create the modified report and replace the results. Click Run Yes when you are prompted to replace the results. g. Save the Chapter3 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-52 Chapter 3 Getting Started with Tasks Partial Results 4. Using the List Data Task to Display San Diego Employees a. In the Chapter3 project, add the employee_addresses data set. If you do not have the Chapter3 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_addresses Open. b. Create a report with the List Data task and show the Employee_Name, Street_Number, Street_Name, City, and Postal_Code columns. Identify each row with the Employee_ID column. 1) If necessary, double-click the employee_addresses data set in the project tree or process flow to open it in the data grid. 2) In the data grid, select Describe List Data. 3) In the Data window, hold down the Ctrl key and select Employee_Name, Street_Number, Street_Name, City, and Postal_Code. Move them to the List variables role. 4) Drag Employee_ID to the Identifying label role. c. Modify the properties for the columns so that the report displays the following labels: Employee ID, Name, Street Number, Street Name, City, and Postal Code. 1) Right-click on each of the variable names and select Properties. 2) In the Properties window, enter the appropriate text in the Label field. 3) In the Task roles pane, right-click and select Show Labels to display the labels. d. Create the report. Select Run and view the report. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 3-53 e. Modify the List Data task so that only the employees from San Diego are included in the report. 1) In the data grid, select Modify Task to reopen the List Data task. 2) Select Edit to open the Edit Data and Filter window. 3) Using the first drop-down box in the Task filter, select City. 4) In the second drop-down box, select Equal to as the operator. 5) In the third box, click . Select San Diego OK. 6) Click OK to close the Edit Data and Filter window. f. Delete the City column from the report. In the Task roles pane, select City and drag it back to the Variables to assign pane. g. Change the title to Employee List for San Diego and delete the footnote. 1) Select Titles in the Selection pane. 2) Clear the Use default text check box and delete the default text. 3) Type Employee List for San Diego. 4) Select Footnote and clear the Use default text check box. Delete the default text. h. Modify the task properties to change the task label to San Diego List. 1) Select Properties in the Selection pane. 2) Select Edit and type San Diego List in the Label field. 3) Click OK. i. Run the task and replace the results. Select Run Yes when you are prompted to replace the results. j. Save the Chapter3 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. Partial Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-54 Chapter 3 Getting Started with Tasks 5. Creating a Grouped List Report for All Employees from Australia a. In the Chapter3 project, add the employee_addresses data set if it is not already included. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_addresses Open. b. Create a report with the List Data task and show the Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code columns. 1) If necessary, double-click the employee_addresses data set in the project tree or process flow to open it in the data grid. 2) In the Data menu bar, select Describe List Data. 3) In the Data selection pane, select Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code. Move them to the List variables role. c. Modify the properties for the columns so that the report displays the following labels: Employee ID, Name, Street Number, Street Name, and Postal Code. 1) Right-click on each of the variable names and select Properties. 2) In the Properties window, enter the appropriate text in the Label field. 3) In the Task roles pane, right-click and select Show Labels to display the labels. d. Generate the report. Click Run. e. Modify the List Data task so that only the employees from Australia are included in the report. Include all variations of AU. 1) On the Results tab, select Modify Task to reopen the List Data task. 2) Select Edit to open the Edit Data and Filter window. 3) Using the first drop-down box in the Task filter, select Country. 4) In the second drop-down box, select In a list as the operator. . Then select Add Values Get Values. Select au on the Values 5) In the third box, click tab, and click OK. Select AddValues a second time. Select AU OK. 6) Click OK to close the window. 7) Click OK to close the Edit Data and Filter window. f. Group and identify the report by City. 1) Assign City to the Group analysis by role. 2) Also assign City to the Identifying label role. g. Provide an appropriate title for the report. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 3-55 1) Select Titles in the Selection pane. 2) Clear the Use default text check box, delete the default text, and type Employee List for Australia. h. Change the task label to AU List. 1) Select Properties in the Selection pane. 2) Select Edit and type AU List in the Label field. 3) Click OK to close the Properties window. i. Rerun the report and replace the results. Click Run Yes. j. Save the Chapter3 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. Partial Results 6. Creating a List Report Including a Complex Filter The ability to filter data in tasks using the point-and-click Edit Data and Filter window is limited to the operators provided in the drop-down lists. To create filters that include SAS functions, you can modify the code to add a custom WHERE statement in the SAS program generated by the task. a. In the Chapter3 project, add the employee_payroll SAS data set. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_payroll Open. b. Use the List Data task to display the Employee_ID and Birth_Date columns. Format Birth_Date and use the DATE9. format. 1) If necessary, double-click the employee_payroll data set in the project tree or process flow to open it in the data grid. 2) In the data grid, select Describe List Data to open the List Data task dialog box. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-56 Chapter 3 Getting Started with Tasks 3) In the Data selection pane, select Employee_ID and Birth_Date and assign them to the List variables task role. 4) Right-click the Birth_Date column and select Properties. 5) In the Properties window, select Change. 6) In the Format window, change the overall width to 9. 7) Click OK OK to return to the task dialog box. c. Modify the task code to insert a WHERE statement in the PROC PRINT step of the SAS program. The WHERE statement should select only those employees with an October birthday. Hint: Use the MONTH function. Documentation about the MONTH function can be accessed by selecting Help SAS Syntax Help. On the Index tab, type MONTH Function. 1) In the List Data task dialog box, click the Preview Code button to open the Code Preview for Task window. 2) In this window, select Insert Code to open the User Code window. 3) Double-click <double-click to insert code> immediately below the FORMAT statement and above the RUN statement for PROC PRINT. 4) In the Enter User code window, enter the following SAS statement: where month(Birth_Date) = 10; 5) Click OK to close the Enter User Code window. 6) Click OK to close the User Code window. 7) Click to close the Code Preview for Task window. d. Do not print the row numbers. 1) Select Options in the Selection pane. 2) Clear the Print the row number check box. e. Add the title Employees with October Birthdays. 1) Select Titles in the Selection pane. 2) Clear the Use default text check box and delete the default text. 3) Type Employees with October Birthdays. f. Change the task label to Oct Birthday List and run the task. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 3-57 1) Select Properties in the Selection pane. 2) Click Edit and type Oct Birthday List in the Label field. 3) Click OK to close the Properties window. 4) Click Run and view the report. g. Save the Chapter3 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. Partial Results 7. Creating a Three-Dimensional Vertical Bar Chart for Salary by City a. In the Chapter3 project, add the employee_detail SAS data set. If you do not have the Chapter3 project, you can start a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_detail Open. b. Open the employee_detail table in the data grid and open the Bar Chart Wizard. In Step 2 of the Bar Chart Wizard, create a vertical bar chart that shows the sum of Salary for each city. Arrange the bars in descending height. 1) If necessary, double-click the employee_detail data set in the project tree or process flow to open it in the data grid. 2) In the data grid, select Graph Bar Chart Wizard. 3) In Step 1, confirm that the data set is employee_detail and click Next. 4) In Step 2, change the Bars drop-down list value to City. 5) Click and select Descending bar height OK. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-58 Chapter 3 Getting Started with Tasks 6) Change the Bar height drop-down list value to Salary. 7) Click Next. c. In Step 3 of the Bar Chart Wizard, change the following attributes: • Create a three-dimensional chart. • Color each bar differently. • Print data labels at the top of each bar with the sum of Salary. • Label the bar height (vertical) axis as Total Salary. • Turn on reference lines. 1) In Step 3 of the wizard, select the 3D chart check box. 2) Change the Color bars by field to Bar category. 3) Select the Data labels check box and select Sum in the drop-down menu. 4) Click the Axis Labels button and type Total Salary in the Bar height field. Click OK to close the Axis labels window. 5) Select the Use reference lines check box. 6) Click Next. d. In Step 4 of the Bar Chart Wizard, name the graph Total Salary for Each City. In the Graph field, type Total Salary for Each City. e. Create the graph. Click Finish. f. Right-click the Bar Chart task in the project tree or process flow. Select Open Open in Advanced View. Make the following modifications: • Modify the format applied to Salary so that you round the values to the nearest dollar. • Change the bar shape to a prism. • Change the reference lines to dashed and light gray. 1) Right-click the Bar Chart task icon, and select Open Open in Advanced View to open the Bar Chart task dialog box. 2) Select Data in the Selection pane. 3) Right-click Salary and select Properties Change. 4) Verify that the format is DOLLARw.d and change the decimal places to 0. Click OK OK to return to the task dialog box. 5) Select Layout in the Selection pane. 6) Change the shape to Prism. 7) Select Reference Lines in the Selection pane. 8) Change the style to Dashed and the color to light gray. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions g. Modify the properties of the Bar Chart task to create an HTML report along with the default SAS Report format. 1) Select Properties in the Selection pane and select Edit. 2) Select Results in the Selection pane. 3) Select the Customize result formats, styles, and behavior radio button. 4) Click the HTML check box and click OK. h. Run the task and replace the results. Save the project as Chapter3. 1) Click Run Yes when you are prompted to replace the results. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. 8. Using the Pie Chart Wizard to Analyze Salary by Department a. In the Chapter3 project, add the employee_detail SAS data set to the project if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_detail Open. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-59 3-60 Chapter 3 Getting Started with Tasks b. Use the Pie Chart Wizard to generate a graph where the slices represent the sum of Salary for each department. 1) If necessary, double-click the employee_detail data set in the project tree or process flow to open it in the data grid. 2) In the data grid, select Graph Pie Chart Wizard. 3) In Step 1, verify that the data set is employee_detail and click Next. 4) In Step 2, select Department as the slice value and Salary as the slice size value. 5) Click and verify that the selected statistic is Sum. 6) Click Next. c. Show the department name and salary total outside each slice, and the percentage of total salary on the inside of each slice. Make the chart three-dimensional. Generate the graph. 1) In Step 3, select the 3D chart check box. 2) Select the Percentage check box and change the drop-down list value to Inside. 3) Click Next. d. Change the title to Total Salary by Department and run the task. 1) In Step 4, type Total Salary by Department in the Graph field. 2) Click Finish. e. Open the task in Advanced View to apply an appropriate format that rounds the display of Salary to the nearest dollar. Create the graph in HTML as well as in SAS Report format. 1) In the project tree or process flow, right-click the Pie Chart task and select Open Open in Advanced View. 2) Select Data in the Selection pane. 3) Right-click Salary and select Properties Change. 4) Verify that the format is DOLLARw.d and change the decimal places to 0. Click OK OK to return to the task dialog box. 5) Select Properties in the Selection pane and select Edit. 6) Select Results in the Selection pane. 7) Select the Customize result formats, styles, and behavior radio button. 8) Select the HTML check box and click OK. f. Run the task and save the Chapter3 project. You might see an exclamation point on the task icon. This indicates that there is a warning in the log. Examine the log to determine whether the warning affects the output. 1) Click Run Yes when you are prompted to replace the results. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 2) Click 3-61 on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. 4) To view the log, click the Log tab. Scroll down to find the following message: WARNING: Text boundaries for the pie/donut slices overlap. 9. Modifying the Pie Chart Task Code to Isolate a Slice a. Complete the Level 2 exercise to generate a pie chart that illustrates total salary by department. See the solutions to the previous exercise. b. Modify the Pie Chart task to slightly separate the Sales slice from the remainder of the pie. This can be done by inserting the explode="Sales" option at the end of the PIE3D statement. 1) On the Results tab of the Pie Chart task, select Modify Task. 2) Select Preview Code Insert Code. 3) Double-click to insert code before the semicolon that closes the PIE3D statement. This location is immediately after the NOHEADING option and before the FORMAT statement. 4) Enter the following option: explode="Sales" Sales is case sensitive. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-62 Chapter 3 Getting Started with Tasks 5) Click OK OK. Close the Code Preview for Task window. c. Run the task and replace the results. Save the Chapter3 project. You might see an exclamation point on the task icon. This indicates that there is a warning in the log. Examine the log to determine whether the warning affects the output. 1) Click Run Yes when you are prompted to replace the results. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter3 in the File name field and select Save. 4) To view the log, click the Log tab. Scroll down to find the following message: WARNING: Text boundaries for the pie/donut slices overlap. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions Solutions to Student Activities (Quizzes/Polls) 3.02 Quiz – Correct Answer Which column attributes can you modify? Label and Format 11 3.03 Multiple Choice Poll – Correct Answer Highlight any data source in the project and select Tasks Describe One-Way Frequencies. Which task role requires a variable assignment? a. Analysis variables b. Frequency count c. Group analysis by 23 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-63 3-64 Chapter 3 Getting Started with Tasks 3.04 Quiz – Correct Answer Open the One-Way Frequencies task again by selecting Tasks Describe One-Way Frequencies. In the Tasks Roles window, select Help and read the description for the Frequency count role. How many variables can be assigned to this role? One 27 3.06 Quiz – Correct Answer What are some advantages of each format? SAS Report format is useful when you combine task results or create reports to be viewed in other SAS applications. HTML can be easily viewed by anyone who has a browser. RTF can be included and edited in common word processors. PDF is a good choice for printing and sharing static copies of the report. Text is simple and familiar if you use the SAS windowing environment. 40 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3.7 Solutions 3.07 Quiz – Correct Answer Confirm the results. Results might be different if you used the One-Way Frequencies task results from the Level 2 or Level 3 exercise. 47 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 3-65 3-66 Chapter 3 Getting Started with Tasks Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Chapter 4 Creating Simple Queries 4.1 Filtering and Sorting Data .............................................................................................. 4-3 Demonstration: Selecting Columns and Filtering Rows......................................................... 4-8 Exercises .............................................................................................................................. 4-16 4.2 Creating New Columns with an Expression .............................................................. 4-20 Demonstration: Creating a Column with an Expression ...................................................... 4-23 Exercises .............................................................................................................................. 4-26 4.3 Grouping and Summarizing Data in a Query ............................................................. 4-29 Demonstration: Summarizing and Filtering by Groups ........................................................ 4-33 Exercises .............................................................................................................................. 4-35 4.4 Joining Tables ............................................................................................................... 4-37 Demonstration: Joining Tables ............................................................................................. 4-42 Exercises .............................................................................................................................. 4-44 4.5 Solutions ....................................................................................................................... 4-47 Solutions to Exercises .......................................................................................................... 4-47 Solutions to Student Activities (Polls/Quizzes) ..................................................................... 4-69 4-2 Chapter 4 Creating Simple Queries Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data 4.1 Filtering and Sorting Data Objectives State the function of the Filter and Sort task the Query Builder and Data Explorer. Compare the functionality available in each task. Apply a filter in a query. Exclude columns in a query. Reorder rows in a query. 3 Manipulating Data Often, you need to manipulate your data before you use it in a task. For example, you might want to analyze a subset of the rows or columns, compute a new column, or combine the data found in two or more tables. 4 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-3 4-4 Chapter 4 Creating Simple Queries Querying Data Three tools are available in Enterprise Guide to manipulate or query your data and create a new data source. Query Builder Filter and Sort task Data Explorer 5 A query is a collection of specifications that enables you to focus on a particular set of data. The Filter and Sort task and the Query Builder can be used to build these query specifications. Behind the scenes, the Filter and Sort task and the Query Builder generate Structured Query Language (SQL) code. The Data Explorer can also be used to create a query in Enterprise Guide. 4.01 Multiple Answer Poll Double-click on any data source in your project. Select Filter and Sort and explore the available tabs. What functionality do you think is supported by this task? a. subsetting rows b. selecting columns c. calculating new columns d. controlling the sort order of the rows e. summarizing data f. creating a SAS data set 6 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data Filter and Sort Task The Filter and Sort task enables you to create a new SAS table by selecting rows, columns, and a sort sequence. 8 4.02 Quiz Close the Filter and Sort task and return to the data grid. Select Query Builder. What options appear to be available that are not present in the Filter and Sort task? 9 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-5 4-6 Chapter 4 Creating Simple Queries Query Builder The Query Builder provides similar tabs for selecting columns, filtering rows, and sorting data. Additional functionality is available, including the following: modifying column properties grouping and summarizing data applying formats selecting distinct rows joining tables 11 The Query Builder also enables you to create SAS views and reports. For more details, select Help SAS Enterprise Guide Help. Then type query output on the Search tab. Select the second topic that is returned in the list: Setting Options for the Current Query. Business Scenario Orion Star wants to analyze Internet sales since 2010. To prepare the data for input to the various analytic tasks, the company must generate a new data source from the orders table. Orders Internet sales since 2010 12 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data 4-7 Business Scenario Preparing the new data set requires only filtering and sorting, so any of the query tools can be used. 13 The Filter tab builds an SQL WHERE clause that looks at every row of data and returns only those rows that satisfy the filter conditions. When you create more than one filter on your data, you can specify whether the relationship between the filters is AND or OR. AND returns rows of data only when all the expressions connected by an AND are true. OR returns data rows when at least one of the expressions connected by an OR is true. Whether you use AND or OR, if none of the expressions is true, no rows of data are returned. If you enter data values in the third field, remember that character values are case sensitive (for example, "CA" ≠ "Ca"). in the third field returns a maximum of 250 unique data values from the column in the first Clicking field. If you want Enterprise Guide to return the next 250 unique data values, select More Values. Each time you select More Values, the next set of distinct values for the variable is displayed in addition to the initial values. The number of values that are retrieved each time is specified by the number of distinct column values that you have for each request option that is found in Tools Options. Comparison operators that are available in the Edit Filter Condition dialog box include the standard comparison operators, as well as the following operators: IN (a list of values) Is equal to an item in the list. Example: category in ("BREAD","MEAT") BETWEEN Evaluates an inclusive range. Example: income between 60000 and 80000 IS MISSING Performs a test for missing values. CONTAINS Contains a string. Example: country contains "US" matches "USA", "RUSSIA" Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-8 Chapter 4 Creating Simple Queries In the Advanced Filter Builder, you can build your expression using constant values, columns, mathematical operators, and functions. You can use the Advanced Filter Builder to add these elements, or you can enter them into the Expression box at the top of the Advanced Expression Editor. Selecting Columns and Filtering Rows Orion Star would like to analyze Internet sales that occurred since the beginning of 2010. To prepare the data for input to the various analytic tasks, the company must generate a new subset from the orders table. This query can be created with either the Filter and Sort task or the Query Builder. 1. Create a new project and add the orders SAS data set. 2. To create the new data set that includes Internet orders placed on or after 01JAN2010, begin by clicking the Filter and Sort tab on the data grid. You can also right-click orders in the project tree or process flow, and select Filter and Sort. 3. On the Variables tab, click to add all columns. All Internet orders have the Employee_ID column equal to 99999999, so it can be removed from the result. Highlight Employee_ID in the . Selected pane and click 4. Click the Filter tab. Define the two filters shown in the display below. Order_Type is a coded column where 1 represents retail sales, 2 represents catalog sales, and 3 represents Internet sales. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data 4-9 SAS dates are stored as the number of days since 01JAN1960. To build a filter based on a specific date, you can either select a particular date from the data by clicking or you can enter a SAS date constant. A SAS date constant must be typed in this form: "DDMONYYYY"d. For example, January 1, 2010 would be typed as "01JAN2010"d. 5. Click the Sort tab. Select Order_Date as the sort variable and change the sort sequence to Descending. 6. Click the Results tab. Type Internet Orders 2010+ in the Task name field. Click Change and type internetorders2010 in the File name field. Select Save. 7. Click OK and verify the results. This data source is a SAS table that can be exported or used as input for other tasks. Partial Results (8 of 55 rows, 6 of 13 columns) 8. The Query Builder can also be used to produce a similar result. To compare the two tasks, double-click the orders table in the project. Select Query Builder from the data grid. You can also right-click orders in the project and select Query Builder. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-10 Chapter 4 Creating Simple Queries 9. The Query Builder enables you to name the query icon and the name and storage location of the SAS table that you created. Type Internet Orders 2010+ Query in the Query name field. Click Change next to the Output name field. Type internet2010query in the File name field and select Save. The table is saved to the default SAS library. However, a different library can be selected if it is available. 10. To select all columns, select t1 (orders) in the Selection pane and drag and drop it onto the Select Data tab. All columns are added to the query. Remove the Employee_ID column by highlighting it on the Select Data tab and clicking . Columns can be added individually either by double-clicking or by dragging and dropping. Multiple columns can be selected by holding down the Ctrl key. You can use the Shift key to select a range of columns. 11. Column properties can also be viewed or modified on the Select Data tab. Highlight Order_Date to view the Properties window. and click You can also double-click on a column to access the Properties window. 12. To apply a format to this column, select Change. In the Formats window, select Date from the Categories pane and MMDDYYw.d from the Formats pane. Change the overall width to 10. Click OK OK to return to the Query Builder. 13. To include only Internet orders placed on or after 01JAN2010, click the Filter Data tab. Drag and drop Order_Type to the Filter Data tab to start the Basic Filter Wizard. You can also click and select Basic Filter. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data 14. In Step 1, change the operator to Equal to and type 3 in the Value field. 15. Click Next to verify the filter and click Finish. 16. Drag Order_Date to the Filter Data tab. In Step 1, change the operator to Greater than or equal to and type "01JAN2010"d in the Value field. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-11 4-12 Chapter 4 Creating Simple Queries 17. Click Next to verify the filter and click Finish. The two filters are automatically connected by an AND operator. 18. Click the Sort Data tab. Drag and drop Order_Date onto the Sort Data tab and change the sort direction to Descending. 19. Click Run to execute the query and view the resulting SAS table. Partial Results (8 of 55 rows, 6 of 13 columns) 20. Save the project as Chapter4. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data Data Explorer The Data Explorer provides an alternative way to interactively filter and sort data and build a Query task in the project. 15 4.03 Quiz 1. Select File Open Data Exploration. 2. Double-click <servername> Libraries SASHELP Cars to open the data source in the Data Explorer. 3. Examine the Data Explorer, including placing your cursor over each column header. What are the two methods that you can use to filter and sort in the Data Explorer? 16 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-13 4-14 Chapter 4 Creating Simple Queries Data Explorer Pending updates are queued and not applied until you click Apply Updates. A new view of the data is created. 18 Data Explorer A Query task can be added to the process flow with the instructions to filter and sort the data. 19 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data Setup for the Poll 1. Click the Quick Stats button in the Explorer panel. 2. Click the Run Statistics for this Column button next to the Type column. 3. Click on the generated graph and report icons to examine the Quick Stats results. 20 4.04 Multiple Answer Poll What are the top two distinct values for Type? a. Hybrid b. SUV c. Sedan d. Sports e. Truck f. Wagon 21 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-15 4-16 Chapter 4 Creating Simple Queries 4.05 Multiple Choice Poll Run the Quick Stats for MPG_Highway. What is the average? a. 22.4 b. 24.9 c. 26.8 d. 30.2 23 Query Tools Comparison Filter and Sort Query Builder Data Explorer Sort data Filter rows and columns Create a new SAS data set Define new columns Join tables Group and summarize data Define column attributes Remove duplicates Calculate Quick Stats 25 Exercises Level 1 1. Creating a New Table in the Filter and Sort Task with a Basic Filter Use the Filter and Sort task to create a new table with San Diego employees sorted in postal code order. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data 4-17 a. In the Chapter4 project, add the employee_addresses data set. If you do not have the Chapter4 project, you can create a new project. b. Using the Filter and Sort task, create a new table for the San Diego office manager. This table should include Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code. c. Create a filter to include only employees from San Diego in the output table. d. Order the output table in ascending postal code order. e. Name the task and output table SanDiegoEmployees. f. Submit the task to create the new table. Partial Results (8 of 112 rows) g. Save the Chapter4 project. 2. Creating a New Table in the Query Builder with a Basic Filter Use the Query Builder to create a new table that includes all employees with the word Sales in their job titles. a. In the Chapter4 project, add the employee_organization data set. b. Use the Query Builder to create a query named Sales Employees Query and a table named sales_emps. Include all employees that contain the word Sales as part of their job titles. When you create the filter, remember that Sales is case sensitive. c. Include all columns and sort the resulting table by Department. d. Run the query and verify the results. Save the Chapter4 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-18 Chapter 4 Creating Simple Queries Partial Results (8 of 189 rows) Level 2 3. Using the Data Explorer Use the Data Explorer to create a subset of Australian employees with salaries less than $100,000. a. In the Chapter4 project, select File Open Data Exploration to explore the Employee_Master table in the orion library. If the orion library is not available, use the Assign Project Library task to create the orion library that points to the location of the course data. Refer to Chapter 2, Exercise 1. b. Use the Data Exploration pane on the right to select only the following columns: Employee_ID, Employee_Name, Employee_Hire_Date, Salary, City, Department, and Job_Title. c. Filter the rows to include only employees from Australia who have salaries less than $100,000. d. Sort the data by ascending employee name. e. Apply all updates and verify that there are 71 rows and seven columns. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.1 Filtering and Sorting Data 4-19 f. Use Quick Stats to answer the following questions regarding this subset of employees: • What percentage work in the Sales Department? _________________________________ • What cities do the employees work in? _____________________________________________ • What is the average salary? ____________________________________________________ • What is the oldest hire date? _________________________________________________ g. Add the Data Exploration to the process flow as a new data source. h. Save the Chapter4 project. Challenge No SAS programming experience is required. 4. Creating a New Table in the Filter and Sort Task with an Advanced Filter Use the Filter and Sort task to create a new table with San Diego employees in the 920 postal code area. Sort the rows in postal code order. a. In the Chapter4 project, add the employee_addresses data set if necessary b. Use the Filter and Sort task to create a new table for the San Diego office manager. The table should include Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code. c. Include only those employees who have a Postal_Code value that begins with the characters 920. Access the Advanced Filter Builder by clicking Advanced Edit on the Filter tab. The SUBSTR function can be used to create the filter. d. Order the output table in ascending postal code order. e. Submit the task to create the new table. Partial Results (8 of 47 rows) f. Save the Chapter4 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-20 Chapter 4 Creating Simple Queries 4.2 Creating New Columns with an Expression Objectives Define a new column of data in a query by building an expression. 30 Business Scenario Orion Star wants to analyze shipment methods by determining how many days elapse between each order date and delivery date. The company also wants to calculate the total amount invoiced to the customer, which is the sum of total retail price and shipping charges. Orders Order _Date Delivery Total_Retail Shipping _Date _Price shipment methods total invoice amount 31 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.2 Creating New Columns with an Expression Computed Columns New summarized columns, recoded columns, or columns based on an expression can be added to a query in the Query Builder. Select to begin creating a new column. 32 New Computed Column Wizard A wizard guides you through the process of creating the new column and assigning attributes such as the column name, label, and format. 33 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-21 4-22 Chapter 4 Creating Simple Queries SAS Functions A SAS function is a routine that returns a value that is determined from specified arguments. General form of a SAS function: function-name(argument1,argument2, . . .) Example: sum(Salary,Bonus) 34 Using SAS Functions SAS functions can do the following: perform arithmetic operations compute sample statistics (for example, sum, mean, and standard deviation) manipulate SAS dates process character values perform many other tasks Sample statistics functions ignore missing values. 35 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.2 Creating New Columns with an Expression 4-23 4.06 Multiple Choice Poll What is the result of the expression given the values of Var1, Var2, and Var3? a. . (missing) b. 3 c. 9 d. 12 Var1 9 Var2 . Var3 3 Var1+Var2+Var3 36 4.07 Multiple Choice Poll What is the result of the expression given the values of Var1, Var2, and Var3? a. . (missing) b. 3 c. 9 d. 12 Var1 9 Var2 . Var3 3 sum(Var1,Var2,Var3) 38 Creating a Column with an Expression Orion Star would like to analyze shipment methods by determining how many days passed between each order date and delivery date. The company also wants to calculate the total amount invoiced to the customer, which is the sum of the total retail price and shipping charges. Use the Query Builder to create a table named shipping with the new computed columns. 1. In the Chapter4 project, double-click the orders table. Select Query Builder. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-24 Chapter 4 Creating Simple Queries If you do not have the Chapter4 project, you can create a new project. 2. Type Shipping Detail Query in the Query name field. Click Change and type shipping in the File name field. Select Save. 3. Verify that the Select Data tab is active. Add the following columns from the orders table: Order_ID, Order_Date, Delivery_Date, Product_ID, Total_Retail_Price, Shipping, and Profit. 4. To add a new column to the query, begin by clicking Computed Columns New. on the Select Data tab, or you can select 5. In Step 1, select Advanced expression Next. 6. In Step 2, expand Selected Columns. Double-click Delivery_Date to add the column to the expression. Select or type a minus sign. Double-click Order_Date to complete the expression. Click Next. 7. In Step 3, type Days_to_Deliver in the Column Name field. Type Days to Deliver in the Label field. Click Next. 8. In Step 4, review the summary of the new column’s properties and click Finish. 9. Repeat the process to create the Invoice_Amt column. Begin by clicking . 10. In Step 1, select Advanced expression Next. 11. In Step 2, scroll down. Find the SUM function under the Functions folder. Double-click SUM Function to add it to the expression. Notice that the syntax for the SUM function is to the right of the list of functions. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.2 Creating New Columns with an Expression 4-25 12. Select Favorites Tables to quickly collapse the Functions folder. Expand Selected Columns. Double-click Total_Retail_Price, and then enter or select the comma. Double-click Shipping to complete the expression as follows: 13. Click Next. In Step 3, type Invoice_Amt in the Column Name field. Type Invoice Amount in the Label field. To display the data values as currency, click Change next to the Format field. In the Format window, select Currency in the Categories pane and DOLLARw.d in the Formats pane. Change the overall width to 8 and the decimal places to 2. Click OK Next. 14. Verify the summary of the properties and click Finish. Both new columns are added to the Selection pane and the Select Data tab. 15. To emphasize the orders with the longest delivery time, sort the table in descending sequence by Days_to_Deliver. Click the Sort Data tab, and drag and drop the Days_to_Deliver column onto the tab area. Change the sort direction to Descending. 16. Run the query and examine the results. Save the Chapter4 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-26 Chapter 4 Creating Simple Queries Partial Results (8 of 617 rows) Exercises Level 1 5. Using the Query Builder to Create a New Table with a Computed Column Use the Query Builder to create New_Salary, which is the current salary plus a 2% raise. a. In the Chapter4 project, add the employee_payroll data set. If you do not have the Chapter4 project, you can create a new project. b. Use the Query Builder to create a query named New Salary Query. Name the output table New_Salary. c. Include Employee_ID, Employee_Gender, Salary, Birth_Date, and Employee_Hire_Date. Modify the properties of the Salary column to change the column name to Old_Salary. d. Include only active employees who have a missing value for Employee_Term_Date. e. Create a new column named New_Salary that is the current salary plus a 2% raise. Format the column to include dollar signs and two decimal places. Hint: Multiply Old_Salary by 1.02. f. Submit the query and verify the results. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.2 Creating New Columns with an Expression Partial Results (8 of 308 rows) g. Save the Chapter4 project. Level 2 6. Creating a Query with a Computed Column Using a Function Use the Query Builder to create a table from the employee_donations table with a new column that indicates the total contributions from each employee. a. In the Chapter4 project, add the employee_donations data set. b. Use the Query Builder to create a query named Donations Query and a table named Total_Donations. c. Include the Employee_ID, Recipients, and Paid_By columns in the new table. d. Create a new column named Total_Donations, which totals the values of the four quarterly donations. Format the new column to display dollar signs, commas, and two decimal places. Use a function to calculate the total and thereby ignore any missing values that might be in the input columns. e. Submit the query and verify that the new column was calculated correctly. Save the Chapter4 project. Partial Results (8 of 124 rows) Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-27 4-28 Chapter 4 Creating Simple Queries Challenge No SAS programming experience is required. 7. Creating a Query to Calculate the Number of Years Employed Use the Query Builder to create a table that includes active employees (those with no termination date) and the number of years that each was employed. a. In the Chapter4 project, use the employee_payroll table to create a query named Years Employed Query and a table named Years_Employed. Include Employee_ID and Employee_Hire_Date. Include only employees without a termination date. b. Create a new column named Years_Employed that calculates the number of years that each employee worked at Orion Star, based on the hire date and today's date. Apply a format that displays the values rounded to one decimal place. Hint: The YRDIF function can be used to calculate the number of years between two dates. Also, the TODAY function can be used to provide the current date. To learn about the YRDIF function, you can either select the function in the Advanced Expression Editor (in the Date and Time category), or use SAS OnlineDoc. A new value for the basis (the third argument in the YRDIF function) was added in SAS 9.3. AGE calculates the accurate age based on the start and end dates provided in the YRDIF function. In earlier versions of SAS, you can use ACTUAL as the basis, but it can produce unexpected results if the start or end date occurs in a leap year. See Computing Ages in SAS® (http://support.sas.com/publishing/authors/extras/61860_update.pdf) for details and alternate solutions for SAS 9.2 and earlier. c. Run the query, verify the results, and save the Chapter4 project. Partial Results (8 of 308 rows) Your results might differ from those shown above. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.3 Grouping and Summarizing Data in a Query 4.3 Grouping and Summarizing Data in a Query Objectives Assign a grouping variable in a query. Select the analysis variable and the summary statistic to compute. Filter grouped data. 45 Business Scenario Orion Star wants to offer a sales promotion that highlights the most lucrative products. The company would like a list of all products with a total profit that exceeds $500. Orders (partial) Product_ID 230100500026 230100500026 230100500056 230100500056 230100500056 Profit $551.80 $137.95 $4.50 $9.00 $4.50 Query_for_Orders (partial) Product_ID Total _Profit 230100500026 $689.75 230100500056 $18.00 46 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-29 4-30 Chapter 4 Creating Simple Queries Grouping Data The Query Builder can be used to group and summarize data. 47 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.3 Grouping and Summarizing Data in a Query 4-31 Grouping Data The Select Data tab can be used to group and summarize data. Choose a statistic for columns to be summarized. Columns without an assigned statistic automatically define the groups. 48 A summarized column can also be created by using the New Computed Column Wizard. The order of the columns on the Select Data tab determines the initial grouping hierarchy. However, this can be modified in the Summary Groups pane. To modify the grouping structure of the data, clear the Automatically select groups check box and select Edit Groups. Statistics include the following: AVG, MEAN STD (standard deviation) COUNT, FREQ, N (number nonmissing values) STDERR (standard error of the mean) CSS (corrected sum of squares) SUM CV (coefficient of variation) SUMWGT (sum of WEIGHT variable values) MAX or MIN T (Student's t-value testing the hypothesis that the population mean is zero) NMISS (number of missing values) USS (uncorrected sum of squares) PRT (two-tailed p-value for Student's t statistic) VAR (variance) RANGE (range of values) Some summary functions enable you to select DISTINCT as part of the function. For example, the summary statistic AVG computes the average for all observations within each group. However, the summary function AVG DISTINCT excludes duplicate values in the calculation so that the computed statistic is the average of only the distinct values within each group. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-32 Chapter 4 Creating Simple Queries Grouping by Column Values The query result includes one row for every unique value of the group column or columns and a calculated statistic for the summarized column or columns. 49 4.08 Quiz 1. Open the Query Builder and use any data source in the current project. 2. Click the Filter Data tab and notice the layout. 3. Return to the Select Data tab and add any two columns. 4. For one of the columns on the Select Data tab, select Count in the Summary field. 5. Return to the Filter Data tab. How does the Filter Data tab change after a query includes grouped data? 50 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.3 Grouping and Summarizing Data in a Query 4-33 Filtering Data The Filter Data tab can be used to filter both raw data and summarized data. 52 First, the query extracts, from the table or tables, all rows that satisfy the conditions specified in the Filter the raw data pane. Then the resulting data is grouped by the assigned grouping variable, and summary statistics are computed for each unique group as defined on the Select Data tab. Further subsetting that is defined in the Filter the summarized data pane is then applied to the summarized values. Filtering grouped data is the same as using the HAVING clause in an SQL query. Summarizing and Filtering by Groups Orion Star would like to offer a sales promotion that highlights the most frequently purchased products. The company wants a list of all products with a total profit exceeding $500. Use the Query Builder to group, summarize, and filter the orders data set. 1. In the Chapter4 project, right-click the orders table in the project tree or process flow and select Query Builder. 2. Name the query Top Products Query and name the output table topproducts. 3. Double-click Product_ID and Profit in the Selection pane to add both columns to the Select Data tab. 4. On the Select Data tab, click in the Summary column for the Profit column. Select the SUM statistic from the drop-down list. Notice that the Automatically select groups check box is selected. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-34 Chapter 4 Creating Simple Queries You can double-click SUM_of_Profit to modify the properties, including column name, label, and format. 5. Click the Filter Data tab. Drag SUM_of_Profit from the Selection pane to the Filter the summarized data pane. 6. In the New Filter Wizard, verify that the column name is SUM_of_Profit. Select Greater than in the Operator field. Type 500 in the Value field and click Finish. 7. Click the Sort Data tab. Drag and drop SUM_of_Profit onto the tab area and change the sort direction to Descending. 8. Click Run and verify the results. Save the Chapter4 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.3 Grouping and Summarizing Data in a Query 4-35 Partial Results (8 of 19 rows) Exercises Level 1 8. Using the Query Builder to Group and Summarize Data Use the Query Builder to create an output table with the average payroll by city. a. In the Chapter4 project, add the employee_master data set. If you do not have the Chapter4 project, you can create a new project. b. Use the Query Builder to create a query named Average Salary per City Query and an output table named AvgSal_City. c. Include only the City and Salary columns in the query. d. Select the AVG (average) statistic for Salary. After you choose a summary statistic, the Summary groups section appears on the lower part of the Select Data tab. The Automatically select groups check box is selected. e. Sort the table in decreasing order of AVG_of_Salary. f. Submit the query and view the results. Save the Chapter4 project. Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-36 Chapter 4 Creating Simple Queries Level 2 9. Using the Query Builder to Group, Summarize, and Filter Data a. In the Chapter4 project, add the employee_master data set if necessary. b. Create a new query named Salary Summary by Dept Query and an output table named salary_summary. c. Include Department, Employee_ID, and Salary (twice) on the Select Data tab. Select the appropriate statistics to calculate the number of employees, the average salary, and the total salary for each department. d. Modify the formats applied to the AVG_of_Salary and SUM_of_Salary columns to round values to the nearest dollar. e. Filter the query to include only those departments with more than 10 employees. f. Sort the data by decreasing department size, based on the number of employees. g. Submit the query and view the results. Save the Chapter4 project. Results Challenge No SAS programming experience is required. 10. Using the Query Builder to Produce a Top-Ten Report a. In the Chapter4 project, add the employee_master data set if necessary. b. Create a new query named Top 10 Paid Job Titles. c. Calculate the average salary for each job title. Rename the column AverageSalary and apply a format to round to the nearest dollar. d. Filter the data to exclude any employees with Chief as part of the job title. e. Sort the data in decreasing sequence of average salary. f. Modify the query options to produce the following results: Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.4 Joining Tables • Generate a report, rather than a data table. • Limit the number of output rows to 10. • Title the report Top 10 Average Salaries by Job Title. Look for the appropriate option by selecting Options Options for this query. g. Submit the query and view the report. Save the Chapter4 project. Results 4.4 Joining Tables Objectives Join multiple tables by common columns. Include only matching rows. 58 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-37 4-38 Chapter 4 Creating Simple Queries Business Scenario Products with total profits exceeding $500 were identified. Analysts need more details about these top products, including the product name, category, supplier, and country. These columns come from three different tables. topproducts products country _lookup 59 Business Scenario To include the necessary columns, the topproducts SAS table must be joined with the products SAS table and the country_lookup Excel spreadsheet. 60 You might need to join tables to accomplish the following: • create a report with columns from more than one table • compute a new column when the input columns are located in separate tables • add information from a lookup table into a base table • identify column values that do or do not occur in other tables Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.4 Joining Tables 4-39 Tables and Joins Window Joining tables enables you to extract and simultaneously process data from more than one table. 61 Select Add Tables to include additional tables in the query. The Query Builder attempts to join tables by columns that have the same name and type. If no column name and type matches are found, then a warning message tells you to join the columns manually. To prevent SAS Enterprise Guide from attempting to join tables by matching columns, select Tools Options Query and clear the Automatically attempt to join tables in query check box. Join Properties The Join Properties window provides the ability to modify the join type or condition. Selecting a different join type can be used to identify or eliminate nonmatching rows. 62 To learn more about the join types, select Help in the Tables and Joins window, and then select Understanding the types of joins. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-40 Chapter 4 Creating Simple Queries Join Types By default, the Query Builder performs an inner join, which includes matching rows only in the results. Employee_Payroll Employee_ID 120101 120102 120103 120104 Employee_Organization Salary 163040 108255 87975 92500 Employee_ID 120101 120102 120103 Salary 163040 108255 87975 Employee_ID 120101 120102 120103 120105 Department Sales Management Sales Management Engineering Administration Department Sales Management Sales Management Engineering 63 Join Types A full outer join includes all rows from both tables. Employee_Payroll Employee_ID 120101 120102 120103 120104 Employee_Organization Salary 163040 108255 87975 92500 Employee_ID 120101 120102 120103 120104 120105 Salary 163040 108255 87975 92500 Employee_ID 120101 120102 120103 120105 Department Sales Management Sales Management Engineering Administration Department Sales Management Sales Management Engineering Administration 64 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.4 Joining Tables Join Types A left join includes all rows from Employee_Payroll. Employee_Payroll Employee_ID 120101 120102 120103 120104 Employee_Organization Salary 163040 108255 87975 92500 Employee_ID 120101 120102 120103 120104 Salary 163040 108255 87975 92500 Employee_ID 120101 120102 120103 120105 Department Sales Management Sales Management Engineering Administration Department Sales Management Sales Management Engineering 65 4.09 Multiple Answer Poll Which Employee_ID values would be included in a right join? a. 120101 b. 120102 c. 120103 d. 120104 e. 120105 Employee_Payroll Employee_ID 120101 120102 120103 120104 Salary 163040 108255 87975 92500 Employee_Organization Employee_ID 120101 120102 120103 120105 Department Sales Management Sales Management Engineering Administration 66 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-41 4-42 Chapter 4 Creating Simple Queries Join Results When joining tables in the Query Builder, you can filter or sort on any of the columns from the input tables. You can also compute new columns, or group and summarize them. 68 Joining Tables In a previous query, products with total profits exceeding $500 were identified. Analysts asked for more details about these top products, including the product category, the product, supplier, and country name. To include the necessary columns, use the Query Builder to join the topproducts SAS table with the products SAS table and the country_lookup Excel spreadsheet. 1. In the Chapter4 project, add the topproducts data set. 2. Add the products SAS table to the project. 3. Add the country_lookup Excel file to the project. Name the imported table country_lookup and select the First row of range contains field names check box. Do not make any changes to the field attributes. 4. Right-click topproducts in the project tree or process flow and select Query Builder. 5. Name the query Top Products Info Query and the output table topproductsinfo. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.4 Joining Tables 4-43 6. Select Add Tables. Verify that the Project icon is selected in the Open Data window. Hold down the Ctrl key and select the products and country_lookup tables. Select Open. To view the full table names, you can click and change the view to Details. 7. A message appears and indicates that Enterprise Guide was unable to find matching columns on which to join in all three tables. Click OK. 8. The Tables and Joins window automatically appears. To join the products and country_lookup tables, first select Supplier_Country in the products table. Select Supplier_Country a second time and drag it to connect it to Country_Key in the country_lookup table. You can also right-click Supplier_Country and select Join with t3 Country_Key. 9. The Join Properties dialog box automatically appears. Verify that the join type is Matching rows only given a condition (Inner Join) and that the condition is t2.Supplier_Country = t3.Country_Key. 10. Verify that the three tables are linked as displayed below. Click OK Close to return to the Select Data tab. 11. Double-click the following columns to add each to the Select Data tab: Product_ID, SUM_of_Profit, Product_Category, Product_Name, Supplier_Name, and Country_Name. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-44 Chapter 4 Creating Simple Queries 12. Click Run to execute the query. Verify the results and save the Chapter4 project. Partial Results (8 of 19 rows) Exercises Level 1 11. Joining Data from Two Tables Use the Query Builder to create a new table whose data results from a join of two tables. Create a new column. a. In the Chapter4 project, add the employee_payroll and employee_addresses data sets if necessary. If you do not have the Chapter4 project, you can create a new project. b. Use the Query Builder to join employee_payroll and employee_addresses to create a table named employee_payroll_location. Label the query Payroll Location Join Query. c. Open the Tables and Joins window to verify that the join between the two tables is on the Employee_ID column. d. Include the following columns on the Select Data tab: Employee_ID, Employee_Name, Employee_Gender, Birth_Date, Salary, Street_Number, Street_Name, City, State, and Country. e. Format the Salary column with a dollar sign, comma, and two decimal places. Format the Birth_Date column with the calendar form 01JAN2009. f. Create a new column named Bonus that represents 1.5% of the Salary column. Format the values with a dollar sign, comma, and two decimal places. g. Include only active employees in the output table, or those that do not have a value for Employee_Term_Date. h. Submit the query and view the results. Save the Chapter4 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.4 Joining Tables 4-45 Partial Results (8 of 308 rows) Level 2 12. Joining Data from Three Tables a. Complete the Level 1 exercise. b. Add the country_lookup SAS data set to the Chapter4 project. c. Modify Payroll Location Join Query. Manually join country_lookup and employee_addresses by the common column. The common column might be named differently in the two tables. d. Remove the Country column on the Select Data tab and replace it with a column representing the full country name in the country_lookup table. e. Resubmit the query and view the results. Save the Chapter4 project. Partial Results (8 of 308 rows) 13. Isolating Nonmatches Use the Query Builder to identify employees who did not make donations. The list is used to inform these employees about the donation program. a. In the Chapter4 project, add the employee_donations data set if necessary. b. Build a query to join the employee_addresses table with employee_donations. Name the query Employees Without Donations Query and the table no_donations. c. Modify the join properties to include all rows from the employee_addresses table. d. Include all columns from the employee_addresses table. e. Filter the query to include only the missing Employee_ID values from the employee_donations table. This isolates those employees who do not appear in the employee_donations table. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-46 Chapter 4 Creating Simple Queries f. Submit the query and view the results. Save the Chapter4 project. Partial Results (8 of 300 rows) Challenge No SAS programming experience is required. 14. Joining Data Using a Non-Equijoin Condition Use the Query Builder to join the data from two sources where the join condition involves a non-equijoin condition. Two columns in the bonus_schedule worksheet, Employed_After and Employed_Before, define the time range for a given bonus percentage. To find the correct bonus percentage for each employee, join the Employee_Hire_Date column with the Employed_After column with the greater-than-or-equal-to operator. Set a second join with the Employee_Hire_Date. This time, use the Employed_Before column with the less-than-or-equal-to operator. a. In the Chapter4 project, add the employee_payroll and bonus_schedule data sets if necessary. b. Because there are no matching columns between these two tables, a manual join is required. Join the tables so that Employee_Hire_Date is on or after the Employed_After column and is on or before the Employed_Before column. c. Add Employee_ID, Employee_Hire_Date, Salary, and Bonus_Percent to the query. d. Create a new column named Bonus_Amount that multiplies Salary by the percent value in the Bonus_Percent column. Display Bonus_Amount with a dollar sign, comma, and two decimal places. e. Submit the query and verify the results. Save the Chapter4 project. Partial Results (8 of 424 rows) Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-47 4.5 Solutions Solutions to Exercises 1. Creating a New Table in the Filter and Sort Task with a Basic Filter Use the Filter and Sort task to create a new table with San Diego employees sorted in postal code order. a. In the Chapter4 project, add the employee_addresses data set. If you do not have the Chapter4 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_addresses Open. b. Using the Filter and Sort task, create a new table for the San Diego office manager. This table should include Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code. 1) In the data grid, select Filter and Sort. 2) On the Variables tab, select Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code. Move them to the Selected pane. c. Create a filter to include only employees from San Diego in the output table. 1) On the Filter tab, select the City column in the drop-down menu. 2) In the second field, select the Equal to operator in the drop-down menu. 3) In the third field, click and then select San Diego OK. d. Order the output table in ascending postal code order. On the Sort tab, select Postal_Code. e. Name the task and output table SanDiegoEmployees. 1) Click the Results tab. 2) Type SanDiegoEmployees in the Task name field. 3) Click Change and type SanDiegoEmployees in the File name field. 4) Select Save. f. Submit the task to create the new table. Click OK to submit the task. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-48 Chapter 4 Creating Simple Queries Partial Results (8 of 112 rows) g. Save the Chapter4 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. 2. Creating a New Table in the Query Builder with a Basic Filter Use the Query Builder to create a new table that includes all employees with the word Sales in their job titles. a. In the Chapter4 project, add the employee_organization data set. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_organization Open. b. Use the Query Builder to create a query named Sales Employees Query and a table named sales_emps. Include all employees that contain the word Sales as part of their job titles. When you create the filter, remember that Sales is case sensitive. 1) Select Query Builder in the data grid or right-click employee_organization in the project and select Query Builder. 2) Type Sales Employees Query in the Query name field. 3) Click Change and type sales_emps in the File name field. Select Save. 4) Click the Filter Data tab. Drag and drop Job_Title onto the tab area. 5) In the New Filter window, select Contains from the Operator drop-down list. 6) Type Sales in the Value field and click Finish. c. Include all columns and sort the resulting table by Department. 1) Drag t1(employee_organization) onto the Select Data tab. 2) Click the Sort Data tab. Drag and drop Department onto the tab area. d. Run the query and verify the results. Save the Chapter4 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-49 1) Click Run. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Partial Results (8 of 189 rows) 3. Using the Data Explorer Use the Data Explorer to create a subset of Australian employees with salaries less than $100,000. a. In the Chapter4 project, select File Open Data Exploration to explore the Employee_Master table in the orion library. If the orion library is not available, use the Assign Project Library task to create the orion library that points to the location of the course data. Refer to Chapter 2, Exercise 1. 1) Select File Open Data Exploration. 2) Double-click Servers Libraries ORION and select Employee_Master. Click Open. b. Use the Data Exploration pane on the right to select only the following columns: Employee_ID, Employee_Name, Employee_Hire_Date, Salary, City, Department, and Job_Title. 1) In the Data Exploration pane, select Edit next to Selected Columns. 2) Hold down the Ctrl key and highlight Employee_ID, Employee_Name, Employee_Hire_Date, Salary, City, Department, and Job_Title. Select the arrow to move the columns to Selected columns. 3) Click Add to Pending Updates. c. Filter the rows to include only employees from Australia who have salaries less than $100,000. 1) In the Data Exploration pane, select Edit next to Filter Conditions. 2) Change the first Select column value to Country. 3) Click on the first filter, and select Click to load values. Select AU Apply Selection. 4) Change the second Select column value to Salary. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-50 Chapter 4 Creating Simple Queries 5) Click on the second filter and select the Conditional Filter tab. 6) Change is equal to to is less than and type 100000. Select Apply Selection. 7) Click Apply to Pending Updates. d. Sort the data by ascending employee name. 1) In the Data Exploration pane, select Edit next to Sort Order. 2) Select Employee_Name and select the arrow to move it to Selected columns. 3) Click Add to Pending Updates. e. Apply all updates and verify that there are 71 rows and seven columns. Select Apply Updates in the Data Exploration pane. f. Use Quick Stats to answer the following questions regarding this subset of employees: 1) Select in the Data Exploration pane and select Click to run all statistics. 2) Click the Quick Stats icon next to each column name to answer the questions. • What percentage work in the Sales Department? 64. 79% • What cities do they work in? Sydney, Melbourne • What is the average salary? $29,819.72 • What is the oldest hire date? 01JAN1976 g. Add the Data Exploration to the process flow as a new data source. Select Add to Process Flow. h. Save the Chapter4 project. 1) Select on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-51 4. Creating a New Table in the Filter and Sort Task with an Advanced Filter No SAS programming experience is required. Use the Filter and Sort task to create a new table with San Diego employees in the 920 postal code area. Sort the rows in postal code order. a. In the Chapter4 project, add the employee_addresses data set if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_addresses Open. b. Use the Filter and Sort task to create a new table for the San Diego office manager. This table should include Employee_ID, Employee_Name, Street_Number, Street_Name, and Postal_Code. 1) In the data grid, select Filter and Sort, or right-click employee_addresses in the project and select Filter and Sort. 2) On the Variables tab, hold down the Ctrl key and select the Employee_ID, Employee_Name, to move the Street_Number, Street_Name, and Postal_Code columns. Click columns to the Selected pane. c. Include only those employees who have a Postal_Code value that begins with the characters 920. Access the Advanced Filter Builder by clicking Advanced Edit on the Filter tab. The SUBSTR function can be used to create the filter. 1) On the Filter tab, click Advanced Edit to open the Advanced Filter Builder. 2) Expand the Functions folder and select the SUBSTR function. The documentation for this function is included in the right window. In this case, the string value is the Postal_Code column, starting in the first column and extracting a total of three characters. 3) Double-click the SUBSTR function to add it to the Enter a Filter window. 4) Collapse the Functions folder and expand Tables t1(employee_addresses). 5) Double-click the Postal_Code column to add it as the first argument of the function. 6) Type 1 for the second argument to indicate that characters in the first position should be extracted. Enter a comma and then type 3 to indicate to extract three characters. 7) Move the cursor outside the close parenthesis and type ="920" to set the filter condition. The complete filter should appear as follows: 8) Click OK to close the Advanced Filter Builder. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-52 Chapter 4 Creating Simple Queries d. Order the output table in ascending postal code order. 1) Click the Sort tab. 2) In the Sort by field, select Postal_Code. e. Submit the task to create the new table. Click OK to submit the task. Partial Results (7 of 47 rows) f. Save the Chapter4 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. 5. Using the Query Builder to Create a New Table with a Computed Column Use the Query Builder to create New_Salary, which is the current salary plus a 2% raise. a. In the Chapter4 project, add the employee_payroll data set. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_payroll Open. b. Use the Query Builder to create a query named New Salary Query. Name the output table New_Salary. 1) In the data grid, select Query Builder or right-click employee_payroll in the project and select Query Builder. 2) Type New Salary Query in the Query name field. 3) Click Change to the right of the Output name field. 4) Type New_Salary in the File name field. Select Save. c. Include Employee_ID, Employee_Gender, Salary, Birth_Date, and Employee_Hire_Date. Modify the properties of the Salary column to change the column name to Old_Salary. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-53 1) Hold down the Ctrl key and select Employee_ID, Employee_Gender, Salary, Birth_Date, and Employee_Hire_Date. Drag all columns and drop them onto the Select Data tab. 2) Select Salary on the Select Data tab and click (the Properties icon). 3) In the Properties for Salary window, type Old_Salary in the Column Name field. Click OK. d. Include only active employees who have a missing value for Employee_Term_Date. 1) Click the Filter Data tab. 2) Drag and drop Employee_Term_Date to the Filter the raw data text box to open the New Filter Wizard. 3) Select Is Missing in the Operator field. You can also use the Equal-to operator and type . (a period) in the Value field. 4) Click Next. 5) Click Finish after you review the summary. e. Create a new column named New_Salary that is the current salary plus a 2% raise. Format the column to include dollar signs and two decimal places. Hint: Multiply Old_Salary by 1.02. 1) Click the Select Data tab. 2) Click to open the New Computed Column Wizard. 3) Select Advanced expression Next. 4) Expand Selected Columns to view the columns in the query. Double-click the Old_Salary column to add it to the expression. The name of the variable in the expression is t1.Salary, referring to the column name from the input table. The query result reflects the column name change to Old_Salary. 5) Using the menu bar or the keyboard, type * (the multiplication operator), and type 1.02 for the operand. The final expression appears as follows: 6) Click Next. 7) In Step 3 of the wizard, type New_Salary in the Column Name field. 8) Click Change next to the Format field. 9) In the Formats window, select the Currency category and the DOLLARw.d format. Set the overall width to 12 and the decimal places to 2. 10) Click OK Next. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-54 Chapter 4 Creating Simple Queries 11) Click Finish after you review the Summary step. f. Submit the query and verify the results. Click Run. Partial Results (8 of 308 rows) g. Save the Chapter4 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. 6. Creating a Query with a Computed Column Using a Function Use the Query Builder to create a table from the employee_donations table with a new column that indicates the total contributions from each employee. a. In the Chapter4 project, add the employee_donations data set. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_donations Open. b. Use the Query Builder to create a query named Donations Query and a table named Total_Donations. 1) In the data grid, click the Query Builder icon. 2) In the Query name field, type Total Donations Query. 3) Click Change. In the File name field, type Total_Donations and select Save. c. Include the Employee_ID, Recipients, and Paid_By columns in the new table. Double-click the columns Employee_ID, Recipients, and Paid_By to add each on the Select Data tab. d. Create a new column named Total_Donations, which totals the values of the four quarterly donations. Format the new column to display dollar signs, commas, and two decimal places. Use a function to calculate the total, and thereby ignore any missing values that might be in the input columns. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-55 1) Select Computed Columns New. 2) Select Advanced expression Next. 3) In the Enter an expression text box, enter the following: sum(Qtr1, Qtr2, Qtr3, Qtr4) 4) Click Next. 5) Type Total_Donations in the Column Name field. 6) Click Change. In the Formats window, select the Currency category and select the DOLLARw.d format. Set the Overall width to 10 and the Decimal places to 2. Click OK Next. 7) After you verify the summary, click Finish Close. e. Submit the query and verify that the new column was calculated correctly. Save the Chapter4 project. 1) Click Run to submit the query. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Partial Results (8 of 124 rows) 7. Creating a Query to Calculate the Number of Years Employed No SAS programming experience is required. Use the Query Builder to create a table that includes active employees (those with no termination date) and the number of years each was employed. a. In the Chapter4 project, use the employee_payroll table to create a query named Years Employed Query and a table named Years_Employed. Include Employee_ID and Employee_Hire_Date. Include only employees without a termination date. 1) If necessary, add the employee_payroll table to the project by selecting File Open Data. 2) Navigate to the location of the course data. Select employee_payroll Open. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-56 Chapter 4 Creating Simple Queries 3) In the data grid, select Query Builder or right-click employee_payroll in the project and select Query Builder. 4) In the Query name field, type Years Employed Query. 5) Click Change. Type Years_Employed in the File name field and select Save. 6) On the Select Data tab, double-click the Employee_ID and Employee_Hire_Date columns to add each to the query. 7) Click the Filter Data tab. 8) Drag and drop Employee_Term_Date into the Filter the raw data text box. In the Edit Filter Wizard, select the Is missing operator. This part of the filter keeps only the active employees. 9) Click Finish. b. Create a new column named Years_Employed that calculates the number of years that each employee worked at Orion Star, based on the hire date and today's date. Apply a format that displays the values rounded to one decimal place. Hint: The YRDIF function can be used to calculate the number of years between two dates. Also, the TODAY function can be used to provide the current date. To learn about the YRDIF function, you can either select the function in the Advanced Expression Editor (in the Date and Time category), or use SAS OnlineDoc. A new value for the basis (the third argument in the YRDIF function) was added in SAS 9.3. AGE calculates the accurate age based on the start and end dates provided in the YRDIF function. In earlier versions of SAS, you can use ACTUAL as the basis, but it can produce unexpected results if the start or end date occurs in a leap year. See Computing Ages in SAS® (http://support.sas.com/publishing/authors/extras/61860_update.pdf) for details and alternate solutions for SAS 9.2 and earlier. 1) Click the Select Data tab. 2) Select Computed Columns New. 3) Select Advanced expression Next. 4) Use the available functions list or enter the following expression: yrdif(Employee_Hire_Date, today( ), 'age') 5) Click Next. Type Years_Employed in the Column Name field. 6) Click Change to apply a format. 7) In the Format window, select the Numeric category and the w.d format. 8) Change the overall width to 4 and the decimal places to 1. 9) Click OK Next. 10) Verify the summary and click Finish Close. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-57 c. Run the query, verify the results, and save the Chapter4 project. 1) Click Run to submit the query. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Partial Results (8 of 308 rows) Your results might differ from those shown above. 8. Using the Query Builder to Group and Summarize Data Use the Query Builder to create an output table with the average payroll by city. a. In the Chapter4 project, add the employee_master data set. If you do not have the Chapter4 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Use the Query Builder to create a query named Average Salary per City Query and an output table named AvgSal_City. 1) Select Query Builder in the data grid. 2) Type Average Salary per City Query in the Query name field. 3) Click Change and type AvgSal_City in the File name field. 4) Select Save. c. Include only the City and Salary columns in the query. Drag and drop the City and the Salary columns onto the Select Data tab. d. Select the AVG (average) statistic for Salary. After you choose a summary statistic, the Summary groups section appears on the lower part of the Select Data tab. The Automatically select groups check box is selected. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-58 Chapter 4 Creating Simple Queries 1) Click the Summary field next to Salary on the Select Data tab. Select AVG from the statistics list. 2) Verify that the name of the new column changes to AVG_of_Salary. e. Sort the table in decreasing order of AVG_of_Salary. 1) Click the Sort Data tab. 2) Drag and drop the AVG_of_Salary column under the Computed Columns section onto the Sort Data tab. 3) Change the sort direction to Descending. f. Submit the query and view the results. Save the Chapter4 project. 1) Click Run and view the results. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Results 9. Using the Query Builder to Group, Summarize, and Filter Data a. In the Chapter4 project, add the employee_master data set if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Create a new query named Salary Summary by Dept Query and an output table named salary_summary. 1) In the data grid, select Query Builder or right-click employee_master in the project and select Query Builder. 2) Type Salary Summary by Dept Query in the Query name field. 3) Click Change and type salary_summary in the File name field. 4) Select Save. c. Include Department, Employee_ID, and Salary (twice) on the Select Data tab. Select the appropriate statistics to calculate the number of employees, the average salary, and the total salary for each department. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-59 1) Double-click or drag and drop the Department, Employee_ID, and Salary columns onto the Select Data tab. Be sure to add Salary two times. 2) Next to Employee_ID on the Select Data tab, change the Summary field to COUNT. 3) Next to the first instance of Salary on the Select Data tab, change the Summary field to AVG. 4) Next to the second instance of Salary on the Select Data tab, change the Summary field to SUM. d. Modify the formats applied to the AVG_of_Salary and SUM_of_Salary columns to round values to the nearest dollar. 1) Highlight the AVG_of_Salary column on the Select Data tab and click . 2) Click Change next to the Format field. 3) In the Formats window, change the number of decimal places to 0. Click OK OK. 4) Repeat Steps 1 through 3 for the SUM_of_Salary column. e. Filter the query to include only those departments with more than 10 employees. 1) Click the Filter Data tab. 2) Drag COUNT_of_Employee_ID to the Filter the summarized data pane. 3) Select Greater than in the Operator field. 4) Type 10 in the Value field and click Finish. f. Sort the data by decreasing department size, based on the number of employees. 1) Click the Sort Data tab. 2) Drag and drop COUNT_of_Employee_ID onto the tab area. 3) Change the sort direction to Descending. g. Submit the query and view the results. Save the Chapter4 project. 1) Click Run and view the results. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-60 Chapter 4 Creating Simple Queries Results 10. Using the Query Builder to Produce a Top-Ten Report No SAS programming experience is required. a. In the Chapter4 project, add the employee_master data set if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Create a new query named Top 10 Paid Job Titles. 1) In the data grid, select Query Builder or right-click employee_master in the project and select Query Builder. 2) Type Top 10 Paid Job Titles in the Query name field. c. Calculate the average salary for each job title. Rename the column AverageSalary and apply a format to round to the nearest dollar. 1) Double-click or drag and drop the Job_Title and Salary columns onto the Select Data tab. 2) Next to Salary on the Select Data tab, change the Summary field to AVG. 3) Select the AVG_of_Salary column on the Select Data tab and click properties. to modify the 4) Type AverageSalary in the Column Name field. 5) Click Change next to the Format field. Change the decimal places to 0. Click OK OK. d. Filter the data to exclude any employees with Chief as part of the job title. 1) Click the Filter Data tab. 2) Drag Job_Title to the Filter the raw data pane. 3) In the New Filter window, select Does not contain in the Operator field. 4) Type Chief in the Value field and click Finish. e. Sort the data in decreasing sequence of average salary. 1) Click the Sort Data tab. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 2) Drag and drop AVG_of_Salary onto the tab area. 3) Change the sort direction to Descending. f. Modify the query options to produce the following results: • Generate a report, rather than a data table. • Limit the number of output rows to 10. • Title the report Top 10 Average Salaries by Job Title. Look for the appropriate option by selecting Options Options for this query. 1) Select Options. 2) In the Result format pane, select the Override the corresponding default settings in Tools->Options check box and select Report. 3) In the Query limits pane, select the Limit number of rows to save in output check box and type 10. 4) Select Titles in the Selection pane and select the Override the corresponding default settings in Tools->Options check box. 5) Type Top 10 Average Salaries by Job Title and click OK. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-61 4-62 Chapter 4 Creating Simple Queries g. Submit the query and view the report. Save the Chapter4 project. Results 1) Click Run and view the results. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. 11. Joining Data from Two Tables Use the Query Builder to create a new table whose data results from a join of two tables. Create a new column. a. In the Chapter4 project, add the employee_payroll and employee_addresses data sets if necessary. If you do not have the Chapter4 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Hold down the Ctrl key. Select employee_payroll and employee_addresses Open. b. Use the Query Builder to join employee_payroll and employee_addresses to create a table named employee_payroll_location. Label the query Payroll Location Join Query. 1) Right-click employee_payroll and select Query Builder. 2) Type Payroll Location Join Query in the Query name field. 3) Click Change. Type employee_payroll_location in the File name field. Select Save. 4) Select Add Tables. Verify that the Project icon is active. Select the employee_addresses table. Select Open. If you cannot see the full table names in the Open Data window, click Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Details. 4.5 Solutions 4-63 c. Open the Tables and Joins window to verify that the join between the two tables is on the Employee_ID column. 1) Select Join Tables. The two tables should automatically be connected by the Employee_ID column. 2) Click Close. d. Include the following columns on the Select Data tab: Employee_ID, Employee_Name, Employee_Gender, Birth_Date, Salary, Street_Number, Street_Name, City, State, and Country. e. Format the Salary column with a dollar sign, comma, and two decimal places. Format the Birth_Date column with the calendar form 01JAN2009. 1) Highlight Salary on the Select Data tab and click . 2) Click Change next to the Format field. 3) Select Currency from the Categories pane and DOLLARw.d from the Formats pane. 4) Change the overall width to 12 and the decimal places to 2. 5) Click OK OK. 6) Highlight Birth_Date on the Select Data tab and click . 7) Click Change next to the Format field. 8) Select Date from the Categories pane and DATEw. from the Formats pane. 9) Change the overall width to 9. 10) Click OK OK. f. Create a new column named Bonus that represents 1.5% of the Salary column. Format the values with a dollar sign, comma, and two decimal places. 1) On the Select Data tab, click to create a new column. 2) In Step 1, select Advanced expression Next. 3) In Step 2, type or click to provide the following expression: Salary * .015 If you select Salary rather than enter it in the expression, it is included as either t1.Salary or t2.Salary. 4) In Step 3, type Bonus in the Column Name field. 5) Click Change next to the Format field. 6) Select Currency from the Categories pane and DOLLARw.d from the Formats pane. 7) Change the overall width to 10 and the decimal places to 2. Click OK. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-64 Chapter 4 Creating Simple Queries 8) Click Next Finish. g. Include only active employees in the output table, or those that do not have a value for Employee_Term_Date. 1) Click the Filter Data tab. Drag and drop Employee_Term_Date onto the tab area. 2) In the New Filter window, change the operator to Is missing and click Finish. h. Submit the query and view the results. Save the Chapter4 project. 1) Click Run. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Partial Results (8 of 308 rows) 12. Joining Data from Three Tables a. Complete the Level 1 exercise. Refer to the solutions for the previous exercise. b. Add the country_lookup SAS data set to the Chapter4 project. 1) Select File Open Data and navigate to the location of the course data. 2) Select country_lookup Open. c. Modify Payroll Location Join Query. Manually join country_lookup and employee_addresses by the common column. The common column might be named differently in the two tables. 1) Right-click Payroll Location Join Query in the project tree or process flow and select Modify. 2) In the Query Builder, select Add tables. 3) Select the country_lookup table and select Open. 4) A message appears and indicates that Enterprise Guide cannot automatically join the tables by common columns. Click OK. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-65 5) In the Tables and Joins window, select Country in the employee_addresses table. Select Country a second time and drag the cursor to connect with Country_Key in the country_lookup table. 6) The Join Properties window appears automatically. Verify that the join condition is t2.Country = t3.Country_Key. Click OK Close. d. Remove the Country column on the Select Data tab and replace it with a column representing the full country name in the country_lookup table. 1) Select Country on the Select Data tab and click . 2) Double-click Country_Name from the country_lookup table to add it to the query. 3) Select Country_Name on the Select Data tab and click the up arrow to move it before Bonus. e. Resubmit the query and view the results. Save the Chapter4 project. 1) Click Run. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Partial Results (8 of 308 rows) 13. Isolating Nonmatches Use the Query Builder to identify employees who did not make donations. The list is used to inform those employees about the donation program. a. In the Chapter4 project, add the employee_donations table if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_donations Open. b. Build a query to join the employee_addresses table with employee_donations. Name the query Employees Without Donations Query and the table no_donations. 1) Right-click employee_donations in the project tree or process flow and select Query Builder. 2) Type Employees Without Donations Query in the Query name field. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-66 Chapter 4 Creating Simple Queries 3) Click Change and type no_donations in the File name field. Select Save. 4) Select Add Tables. Select employee_addresses from the project and select Open. c. Modify the join properties to include all rows from the employee_addresses table. 1) Select Join Tables to open the Tables and Joins window. Right-click the Venn diagram that connects the two tables and select Properties. 2) In the Join Properties window, change the join type to All rows from the right-table given a condition. Verify that the table on the right is employee_addresses. 3) Click OK Close. d. Include all columns from the employee_addresses table. Drag the t2(employee_addresses) table onto the Select Data tab. e. Filter the query to include only the missing Employee_ID values from the employee_donations table. This isolates those employees who do not appear in the employee_donations table. 1) Click the Filter Data tab. 2) Drag Employee_ID from the employee_donations table onto the tab area. 3) In the New Filter window, change the operator to Is missing. Click Finish. f. Submit the query and view the results. Save the Chapter4 project. 1) Click Run. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Partial Results (8 of 300 rows) 14. Joining Data Using a Non-Equijoin Condition No SAS programming experience is required. Use the Query Builder to join the data from two sources where the join condition involves a non-equijoin condition. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4-67 Two columns in the bonus_schedule worksheet, Employed_After and Employed_Before, define the time range for a given bonus percentage. To find the correct bonus percentage for each employee, join the Employee_Hire_Date column with the Employed_After column with the greater-than-or-equal-to operator. Set a second join with the Employee_Hire_Date. This time, use the Employed_Before column with the less-than-or-equal-to operator. a. In the Chapter4 project, add the employee_payroll and bonus_schedule data sets if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_payroll Open. 3) Repeat for bonus_schedule. b. Because there are no matching columns between these two tables, a manual join is required. Join the tables so that Employee_Hire_Date is on or after the Employed_After column and is on or before the Employed_Before column. 1) Right-click employee_payroll in the project tree or process flow and select Query Builder. 2) In the Query Builder, select Add tables. 3) Select the bonus_schedule table and select Open. 4) A message appears and indicates that Enterprise Guide cannot automatically join the tables by common columns. Click OK. 5) In the Tables and Joins window, select Employee_Hire_Date in the employee_payroll table. Select Employee_Hire_Date a second time and drag the cursor to connect with Employed_After in the bonus_schedule table. 6) The Join Properties window appears automatically. Change the join condition so that it is t1.employee_hire_date >= t2.Employed_After. Click OK. 7) Select Employee_Hire_Date again in the employee_payroll table. Select Employee_Hire_Date a second time and drag the cursor to connect with Employed_Before in the bonus_schedule table. 8) The Join Properties window appears automatically. Change the join condition so that it is t1.employee_hire_date <= t2.Employed_Before. Click OK Close. c. Add Employee_ID, Employee_Hire_Date, Salary, and Bonus_Percent to the query. 1) Click the Select Data tab. 2) Double-click Employee_ID, Employee_Hire_Date, Salary, and Bonus_Percent to add each column to the query. d. Create a new column named Bonus_Amount that multiplies Salary by the percent value in the Bonus_Percent column. Display Bonus_Percent with a dollar sign, comma, and two decimal places. 1) On the Select Data tab, click to begin creating a new column. 2) In Step 1, select Advanced expression Next. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-68 Chapter 4 Creating Simple Queries 3) In Step 2, type or click to create the following expression: t1.Salary * t2.Bonus_Percent 4) Click Next. In Step 3, type Bonus_Amount in the Column Name field. 5) Click Change next to the Format field. 6) Select Currency from the Categories pane and DOLLARw.d from the Formats pane. 7) Change the overall width to 10 and the decimal places to 2. Click OK. 8) Click Next Finish. e. Submit the report and verify the results. Save the Chapter4 project. 1) Click Run. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter4 in the File name field and select Save. Partial Results (8 of 424 rows) Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions Solutions to Student Activities (Polls/Quizzes) 4.01 Multiple Answer Poll – Correct Answers Double-click on any data source in your project. Select Filter and Sort and explore the available tabs. What functionality do you think is supported by this task? a. subsetting rows b. selecting columns c. calculating new columns d. controlling the sort order of the rows e. summarizing data f. creating a SAS data set 7 4.02 Quiz – Correct Answer Close the Filter and Sort task and return to the data grid. Select Query Builder. What options appear to be available that are not present in the Filter and Sort task? Possible answers: Query name, Output name, Computed Columns, Prompt Manager, Tools, Options, Add Tables, Join Tables 10 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-69 4-70 Chapter 4 Creating Simple Queries 4.03 Quiz – Correct Answer What are the two methods that you can use to filter and sort in the Data Explorer? Select the arrow next to a column name. Use the Explorer pane. 17 4.04 Multiple Answer Poll – Correct Answers What are the top two distinct values for Type? a. Hybrid b. SUV c. Sedan d. Sports e. Truck f. Wagon 22 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4.05 Multiple Choice Poll – Correct Answer Run the Quick Stats for MPG_Highway. What is the average? a. 22.4 b. 24.9 c. 26.8 d. 30.2 24 4.06 Multiple Choice Poll – Correct Answer What is the result of the expression given the values of Var1, Var2, and Var3? a. . (missing) b. 3 c. 9 d. 12 Var1 9 Var2 . Var3 3 Var1+Var2+Var3 37 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-71 4-72 Chapter 4 Creating Simple Queries 4.07 Multiple Choice Poll – Correct Answer What is the result of the expression given the values of Var1, Var2, and Var3? a. . (missing) b. 3 c. 9 d. 12 Var1 9 Var2 . Var3 3 sum(Var1,Var2,Var3) 39 4.08 Quiz – Correct Answer How does the Filter Data tab change after a query includes grouped data? An additional pane labeled “Filter the summarized data” is added to the Filter Data tab. without grouping with grouping 51 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4.5 Solutions 4.09 Multiple Answer Poll – Correct Answers Which Employee_ID values would be included in a right join? a. 120101 b. 120102 c. 120103 d. 120104 e. 120105 Employee_ID 120101 120102 120103 120105 Employee_Payroll Employee_ID 120101 120102 120103 120104 Salary 163040 108255 87975 92500 Salary 163040 108255 87975 Department Sales Management Sales Management Engineering Administration Employee_Organization Employee_ID 120101 120102 120103 120105 Department Sales Management Sales Management Engineering Administration 67 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 4-73 4-74 Chapter 4 Creating Simple Queries Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Chapter 5 Creating Summarized Output 5.1 Generating Summary Statistics .................................................................................... 5-3 Demonstration: Generating Summary Statistics .................................................................... 5-5 Exercises ................................................................................................................................ 5-8 5.2 Creating a Summary Report with the Summary Tables Task ................................... 5-11 Demonstration: Creating a Tabular Summary Report .......................................................... 5-12 Exercises .............................................................................................................................. 5-16 5.3 Solutions ....................................................................................................................... 5-18 Solutions to Exercises .......................................................................................................... 5-18 5-2 Chapter 5 Creating Summarized Output Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.1 Generating Summary Statistics 5.1 Generating Summary Statistics Objectives Create a summary table. Create a summary report. Export summary data to Excel. 3 Business Scenario Management wants an HTML report and an Excel file that include a summary of profits for each product line and category. Orion_Profit 4 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-3 5-4 Chapter 5 Creating Summarized Output Summary Statistics Task The Summary Statistics task can be used to calculate summary statistics based on groups within the data. You can produce reports, graphs, and data sets as output. 5 Summary Statistics Task The Summary Statistics task has both a wizard and a standard task dialog box that can be used to set up results. 6 Options available in Advanced View that are not available using the wizard include the following: • sorting by a classification variable • applying a format to a classification variable • including missing values in calculations • specifying combinations of classification variables If you convert from the wizard to Advanced View, you cannot switch back to the wizard. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.1 Generating Summary Statistics 5-5 Generating Summary Statistics Management wants a report that summarizes profits for each product line and category. Management wants to be able to access an HTML report or an Excel file from a shared network drive. 1. Create a new project and add the orion_profit table. 2. To create the summary report and data set, select Describe Summary Statistics Wizard in the data grid. 3. In Step 1, you can verify the data and apply a filter if desired. Accept the default settings and click Next. 4. In Step 2, variables are assigned to task roles. Drag Profit into the Summary statistics of pane. First, drag Product_Line into the For each value of pane, and then add Product_Category. Click Next. 5. In Step 3, designate the statistics to include in the report. Click Edit. a. On the Basic tab, clear Standard deviation, Minimum, Maximum, and Number of observations. b. Select Sum. c. Change the number of decimal places to 2. d. Click the Percentile tab and select Median OK. 6. Continuing in Step 3, select the Box and whisker check box to add a graph to the report. 7. Select the Save statistics to data set check box and click Browse. Type profit_summary in the File name field and select Save Next. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-6 Chapter 5 Creating Summarized Output 8. In Step 4, delete the default analysis title and type Summary of Profit by Product Line/Category. Click Finish. 9. Notice the multiple tabs as part of the task results, including both the Results and Output Data tabs. Partial Results 10. To create a more descriptive name for the task, right-click Summary Statistics in the project tree and select Rename. Type Profit by Product Summary. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.1 Generating Summary Statistics 5-7 11. To automate the export of the output data to Excel, click the Output Data tab. Select Export Export Summary Statistics for <libname>.ORION_PROFIT As A Step In Project. 12. In Step 1 of the Export Wizard, verify that Summary Statistics for <library>.ORION_PROFIT is highlighted. Click Next. 13. In Step 2, select Microsoft Excel Workbooks (*.xlsx) as the output file type. Click Next. 14. In Step 3, select the Use labels for column names check box. Click Next. 15. In Step 4, change the name of the output file. a. Click Browse and navigate to the location that is specified by your instructor. b. Type Profit_Summary in the File name field. Select Save. If you clear the Overwrite existing output check box and a file with the same name already exists, then a new filename is created by appending the current date and time to the existing filename. 16. Click Next to review the export settings and click Finish. The Profit_Summary.xlsx file is exported and an Export File task is added to the project. If the project is rerun, both the Summary Statistics and Export File tasks run to update all results. 17. Save the project as Chapter5. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-8 Chapter 5 Creating Summarized Output Exercises Level 1 1. Creating a Summary Report of Salary by Department Use the Summary Statistics Wizard to generate a report that analyzes the salaries of all employees by Department. a. In the Chapter5 project, add the employee_master table. If you do not have the Chapter5 project, you can create a new project. b. Use the Summary Statistics Wizard to generate a report on the Salary column by Department. c. Include the mean, minimum, maximum, and median salary for each group and round values to the nearest dollar. d. Create a SAS data set named salary_stats that includes the calculated statistics. e. Type Summary Statistics for Salary by Department as the title and delete the footnote. f. Submit the task and view the report. Rename the task Salary by Dept Summary. g. As a step in the project, export the output data to an Excel file named SalaryStats.xlsx. h. Save the Chapter5 project. Partial Results Level 2 2. Creating a Summary Report of Salary by Department and State Use the Summary Statistics task to create a report that summarizes employee salaries by department and state. a. In the Chapter5 project, add the employee_master table if necessary. b. Use the Summary Statistics Wizard to summarize Salary by Department first, and then by State. c. Include the mean, minimum, maximum, and median salary for each group and round values to two decimal places. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.1 Generating Summary Statistics 5-9 d. Type Summary Statistics for Salary by Department and State as the title and delete the footnote. e. Submit the task and view the report. Rename the task Salary by Dept/State Summary. Partial Results f. Modify the task to generate multiple reports for all combinations of the two classification variables. In the project tree or process flow, right-click the Salary by Dept/State Summary icon and select Open Open in Advanced View to open the Summary Statistics task. g. Select Results from the Selection pane. Select All ways in the Combinations of classification variables drop-down list. h. Submit the report. Click Yes when you are prompted to replace the results from the previous run. Verify that four tables are included in the report, that is, one for each combination of the classification variables. i. Modify the task again to include only the second and third tables from the previous results. Summarize Salary by Department first and Salary by State second. Run the task and replace the results. Save the Chapter5 project. Partial Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-10 Chapter 5 Creating Summarized Output Challenge 3. Modifying the Summary Statistics Task Code to Include an Additional Statistic Insert custom code into the SAS program generated by the Summary Statistics task to calculate the skewness statistic for employee salary by country. a. In the Chapter5 project, add the employee_master table if necessary. b. Use the Summary Statistics Wizard to create a report based on the employee_master table. Rename the task Salary by Country Summary. Partial Results c. Reopen the task in Advanced View and modify the underlying code in the Salary by Country Summary task to add the skewness statistics in the report. Add the SKEWNESS keyword directly after other listed statistics. Skewness is a measure that indicates to what degree the distribution of data values has a longer tail to the left or to the right. For the salary distribution for both US and AU, there are a few extreme values at the high end and a concentration of values at the low end of the distribution, so the right tail of the distribution curve is longer (right-skewed). For such data, the skewness statistic is greater than zero. If the data is left-skewed, the skewness statistic is less than zero. d. Run the task and replace the results. Verify that the additional skewness statistic was added to the report. Save the Chapter5 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.2 Creating a Summary Report with the Summary Tables Task 5.2 Creating a Summary Report with the Summary Tables Task Objectives Access the Summary Tables task. Specify a table layout and statistics. Define headings for columns and rows. Assign a label for missing values. Add titles to the report. Generate the tabular summary report. 12 Business Scenario To better understand customer purchasing, the Orion marketing group requested a report that summarizes total profits for each customer age group and product category. 13 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-11 5-12 Chapter 5 Creating Summarized Output Summary Tables The Summary Tables Wizard or task can be used to generate a tabular summary report. 14 Creating a Tabular Summary Report Using the orion_profit table, create a tabular summary report to display the sum of profit for each product category and customer age group. 1. In the Chapter5 project, double-click the orion_profit icon in the project tree or process flow to open it in the data grid. 2. Select Describe Summary Tables Wizard from the data grid. 3. In Step 1, verify that the active data source is the orion_profit table. Click Next. 4. In Step 2, analysis variables and statistics are assigned. To calculate the sum of profit, select Add Profit. 5. To apply a format so that the values in the table appear as currency values, click Browse. Select Currency from the Categories pane and DOLLARw.d from the Formats pane. Change the overall width to 8 and leave the number of decimal places as 0. Click OK Next. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.2 Creating a Summary Report with the Summary Tables Task 5-13 6. In Step 3, classification variables are assigned to define the rows and columns of the table. Select Add Customer_Age_Group in the Columns pane, and select Add Product_Category in the Rows pane. Click Next. 7. In Step 4, verify that Grand total only is selected for both rows and columns. Click Next. 8. Click Next twice to proceed through the final two steps. Click Finish to view the intermediate results. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-14 Chapter 5 Creating Summarized Output 9. Further modifications can be made to improve the display of the report in the Summary Tables Wizard. On the Results tab, select Modify Task to reopen the wizard. 10. To delete the Profit and Sum headings, click Next to advance to Step 2. Change the value in the Analysis variable labels and Statistics labels fields to hidden. 11. Click Next to advance to Step 3. To group Product_Category by Product_Line, select Add to move it to the top of the list. Product_Line in the Rows box. Select Product_Line and click 12. To delete the labels for Product_Category, Product_Line, and the extra blank space that is included in the first row of the table, select More Options. Click the Hide the row headers check box. Click OK Next. 13. To add subtotals for each value of Product_Line, change the value in the Rows field to Totals at each level. 14. Click Finish. When you are prompted to replace the results, click Yes. 15. To further modify the appearance of the table, the Advanced View of the Summary Tables task must be used. Right-click the Summary Tables Wizard icon in the project tree or process flow. Select Open Open in Advanced View. 16. Select Summary Tables in the Selection pane. To change the column heading for Customer_Age_Group, right-click Customer_Age_Group in the Preview area and select Heading Properties. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.2 Creating a Summary Report with the Summary Tables Task 5-15 17. In the Heading Properties window, type Profit by Customer Age Group in the Label field. Click OK. If you delete a label entirely, the box is also removed from the final report. 18. Change the column heading for the Product_Line subtotals by right-clicking the Total label and selecting Heading Properties. 19. Type Product Line Subtotal in the Label field. Click OK. 20. To highlight the subtotals with a different color background and font, right-click Total (the subtotals for Product_Line) and select Data Value Properties. 21. In the Data Value Properties window, click the Font tab. Select the Bold Italic font style and light yellow for the background color. Click OK. 22. To specify a label for missing values, right-click anywhere on the table and select Table Properties. 23. In the Table Properties window, click the General tab. Delete the default label in the Label for missing values field and type **. Click OK. 24. Click Run to generate the final report. Click Yes when you are prompted to replace the results. 25. Save the Chapter5 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-16 Chapter 5 Creating Summarized Output Exercises Level 1 4. Creating a Summary Tables Report with Multiple Statistics Use the Summary Tables task to generate a report that displays the minimum and maximum salary for each country and department. a. In the Chapter5 project, add the employee_master table if necessary. If you do not have the Chapter5 project, you can create a new project. b. Open the Summary Tables Wizard. In Step 2, add Salary to the Analysis variables list two times. Select Minimum for the first statistic and Maximum for the second. c. Hide the analysis variable labels and apply the DOLLARw.d format to the table with 10 for the overall width and 0 for the decimal places. d. Add Country in the Columns pane and Department in the Rows pane. Hide the row headings. e. Eliminate the totals for both the rows and columns. f. Generate the report and examine the results. g. Modify the Summary Tables task by opening it in Advanced View. Modify the heading properties for the Minimum and Maximum columns to display Low and High. h. Modify the heading properties for Country to display Salary Ranges by Country. i. Modify the table properties to display missing values as a single hyphen. j. Change the task label to Salary Ranges by Country. k. Generate the report and save the Chapter5 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.2 Creating a Summary Report with the Summary Tables Task 5-17 Level 2 5. Creating a Summary Tables Report with Multiple Statistics and Highlighting Use the Summary Tables task to generate a report that displays the frequency, percent of column frequency, and percent of column sum by department for each city in Australia. a. In the Chapter5 project, open the employee_master table and the Summary Tables Wizard. b. Edit the data so that only employees from Australia are included in the report. c. Add the Salary variable as the analysis variable three times and select the first statistic as Frequency, the second statistic as % of Column Frequency, and the third statistic as % of Column Sum. Hide the analysis variable label. d. Add City as the column classification variable and Department as the row classification variable. Hide the row and column headings. e. Type Summary of Salaries for Australia by Department as the title and delete the footnote. Submit the task and view the report. f. Modify the report by opening the task in Advanced View. Use the Summary Tables preview to delete ColPctN from the Total column. Hint: Delete Salary first and then delete ColPctN. g. Modify the headings to match the final output below. Change the background color of the data values in the Total row and Total column to light orange. h. Change the task label to AU Salary Report. Generate the report and save the Chapter5 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-18 Chapter 5 Creating Summarized Output Challenge 6. Creating and Applying a Custom Percentage Format You might want to display a percent sign (%) after the percentage values in your table created by the Summary Tables task. If you use the PERCENTw.d format, it multiplies data values by 100, and then adds a percent sign (%) to the end of the formatted value. The Summary Tables task already multiplied the values by 100 to compute the percent. Therefore, if you use the PERCENTw.d format to format the values, they are incorrect. Because you do not want the value multiplied by 100, you need to create a picture format. Use PROC FORMAT to add the percent sign to the value. a. Complete the Level 2 exercise. b. Open and run the e105e06 SAS program. This program creates a user-defined format named MYPCT that rounds values to the nearest tenth and adds a percent sign. c. Modify AU Salary Report, which was created in the Level 2 exercise. Apply the MYPCT format by modifying the data value properties for all percentage columns in the report. Look for the User Defined category in the Format window. d. Generate the report and save the Chapter5 project. 5.3 Solutions Solutions to Exercises 1. Creating a Summary Report of Salary by Department Use the Summary Statistics Wizard to generate a report that analyzes the salaries of all employees by Department. a. In the Chapter5 project, add the employee_master table. If you do not have the Chapter5 project, you can create a new project. 1) If you need to create a new project, select File New Project. 2) Select File Open Data and navigate to the location of the course data. 3) Select employee_master Open. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.3 Solutions 5-19 b. Use the Summary Statistics Wizard to generate a report on the Salary column by Department. 1) In the data grid, select Describe Summary Statistics Wizard. 2) In Step 1, verify that the data being processed is employee_master. Click Next. 3) In Step 2, drag the Salary column to the Summary statistics of pane and the Department column to the For each value of pane. Click Next. c. Include the mean, minimum, maximum, and median salary for each group and round values to the nearest dollar. 1) In Step 3, click Edit to open the Edit Statistics window. On the Basic tab, clear the Standard deviation and Number of observations check boxes. Use the drop-down box to select 0 for the number of decimal places. 2) Click the Percentile tab and select the Median statistic. Click OK to close the Edit Statistics window. d. Create a SAS data set named salary_stats that includes the calculated statistics. 1) In Step 3, select the Save statistics to data set check box. 2) Click Browse. 3) Type salary_stats in the File name field and select Save. 4) Click Next. e. Type Summary Statistics for Salary by Department as the title and delete the footnote. In Step 4, add the title Summary Statistics for Salary by Department in the Analysis pane, and delete the footnote. f. Submit the task and view the report. Rename the task Salary by Dept Summary. 1) Click Finish. In the project tree, right-click the Summary Statistics Wizard icon and select Properties. 2) Change the label to Salary by Department Summary. Click OK to close the Properties window. Partial Results g. As a step in the project, export the output data to an Excel file named SalaryStats.xlsx. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-20 Chapter 5 Creating Summarized Output 1) Click the Output Data tab. 2) Select Export Export Summary Statistics for <libname>.EMPLOYEE_MASTER As A Step In Project. 3) In the Export Wizard, click Next to advance to Step 2. 4) In Step 2, select Microsoft Excel Workbooks (*.xlsx). Click Next. 5) In Step 3, select the Use labels for column names check box. Click Next. 6) In Step 4, click Browse and navigate to the location that is indicated by your instructor. 7) Type SalaryStats in the File name field and select Save. Click Next. 8) In Step 5, verify the selections and click Finish. h. Save the Chapter5 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter5 in the File name field and select Save. 2. Creating a Summary Report of Salary by Department and State Use the Summary Statistics task to create a report that summarizes employee salaries by department and state. a. In the Chapter5 project, add the employee_master table if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Use the Summary Statistics Wizard to summarize Salary by Department first, and then by State. 1) In the data grid, select Describe Summary Statistics Wizard. 2) In Step 1, verify that the data being processed is employee_master and click Next. 3) In Step 2, drag the Salary column to the Summary statistics of pane and the Department and State columns to the For each value of pane. Click Next. c. Include the mean, minimum, maximum, and median salary for each group and round values to two decimal places. 1) In Step 3, click Edit to open the Edit Statistics window. On the Basic tab, clear the Standard deviation and Number of Observations check boxes. Use the drop-down box to select 2 for the number of decimal places. 2) Click the Percentile tab and select the Median statistic. Click OK to close the Edit Statistics window. 3) Click Next. d. Type Summary Statistics for Salary by Department and State as the title and delete the footnote. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.3 Solutions 5-21 In Step 4, add the title Summary Statistics for Salary by Department and State in the Analysis pane, and delete the footnote. e. Submit the task and view the report. Rename the task Salary by Dept/State Summary. 1) Click Finish and review the results. 2) In the project tree or process flow, right-click the Summary Statistics Wizard icon and select Properties. 3) Change the label to Salary by Dept/State Summary. Click OK to close the Properties window. Partial Results f. Modify the task to generate multiple reports for all combinations of the two classification variables. In the project tree or process flow, right-click the Salary by Dept/State Summary icon and select Open Open in Advanced View to open the Summary Statistics task. g. Select Results from the Selection pane. Select All ways in the Combinations of classification variables drop-down list. h. Submit the report. Click Yes when you are prompted to replace the results from the previous run. Verify that four tables are included in the report, that is, one for each combination of the classification variables. Click Run Yes. i. Modify the task again to include only the second and third tables from the previous results. Summarize Salary by Department first and Salary by State second. Run the task and replace the results. Save the Chapter5 project. 1) In the Results window, click the Modify Task button to reopen the task. 2) Select the Results pane. 3) Use the Combination of classification variables drop-down box to select Specify ways. In the Specify ways box, type 1. 4) Click Run Yes when you are prompted to replace the results. 5) Click on the toolbar. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-22 Chapter 5 Creating Summarized Output 6) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter5 in the File name field and select Save. Partial Results 3. Modifying the Summary Statistics Task Code to Include an Additional Statistic Insert custom code in the SAS program generated by the Summary Statistics task to calculate the skewness statistic for employee salary by country. a. In the Chapter5 project, add the employee_master table if necessary. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Use the Summary Statistics Wizard to create a report based on the employee_master table. Rename the task Salary by Country Summary. 1) In the data grid, select Describe Summary Statistics Wizard. 2) In Step 1, verify that the data being processed is employee_master and click Next. 3) In Step 2, drag the Salary column to the Summary statistics of pane and the Country column to the For each value of pane. Click Next. 4) In Step 3, click Edit to open the Edit Statistics window. On the Basic tab, use the drop-down box to select 2 for the number of decimal places. Click OK to close the Edit Statistics window. Select the Histogram check box. Click Next. 5) In Step 4, enter the title Salary by Country Summary in the Analysis pane. Delete the histogram title and footnote. 6) Click Finish and view the report. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.3 Solutions 5-23 Partial Results c. Reopen the task in Advanced View and modify the underlying code in the Salary by Country Summary task to add the skewness statistics in the report. Add the SKEWNESS keyword directly after other statistics listed. 1) Right-click the Summary Statistics icon under EMPLOYEE_MASTER in the project tree or process flow and select Open Open in Advanced View. 2) Select Preview Code Insert Code. 3) Scroll down to find the end of the PROC MEANS statement. Double-click to insert custom code between the N option and the semicolon. 4) In the Enter User Code window, type skewness. 5) Click OK OK and close the Code Preview window. d. Run the task and replace the results. Verify that the additional skewness statistic was added to the report. Save the Chapter5 project. 1) Click Run Yes. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter5 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-24 Chapter 5 Creating Summarized Output 4. Creating a Summary Tables Report with Multiple Statistics Use the Summary Tables task to generate a report calculating the minimum and maximum salary for each country and department. a. In the Chapter5 project, add the employee_master table. If you do not have the Chapter5 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Open the Summary Tables Wizard. In Step 2, add Salary to the Analysis variables list two times. Select Minimum for the first statistic and Maximum for the second. 1) In the project tree or process flow, double-click the employee_master table to open the data grid. Select Describe Summary Tables Wizard. 2) In Step 1 of the wizard, confirm that the employee_master table is being processed. Click Next. 3) In Step 2, click Add and select Salary from the list. Repeat these steps so that Salary is listed twice. Notice at this point that the statistic for both lines is Sum. 4) Click the Statistic column for the first Salary row. Use the drop-down menu to select the Minimum statistic. 5) Click the Statistic column for the second Salary row. Use the drop-down menu to select the Maximum statistic. c. Hide the analysis variable labels and apply the DOLLARw.d format to the table with 10 for the overall width and 0 for the decimal places. 1) For the Analysis variable labels, use the drop-down menu to select hidden. 2) Click Browse to open the Select Column Format window. Select the Currency category and select the DOLLARw.d format. Use the spin boxes to set the overall width to 10 and the decimal places to 0. Click OK to close the Select Column Format window. Click Next. d. Add Country in the Columns pane and Department in the Rows pane. Hide the row headings. 1) In Step 3, click Add for the Columns section and select the Country column from the list. 2) Click Add in the Rows section and select the Department column from the list. 3) Select More Options and select the Hide the row headers check box. Click OK to close the More Options window. 4) Click Next. e. Eliminate the totals for both the rows and columns. In Step 4, for both the column and row totals, use the drop-down menu to select None. f. Generate the report and examine the results. Click Finish. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.3 Solutions 5-25 g. Modify the Summary Tables task by opening it in Advanced View. Modify the heading properties for the Minimum and Maximum columns to display Low and High. 1) In the project tree or process flow, right-click the Summary Tables icon under the employee_master table and select Open Open in Advanced View. 2) Select the Summary Tables pane. 3) Right-click either of the Min statistics headings and select Heading Properties. In the Heading Properties for Min window, type Low in the Label field. Click OK to close the window. 4) Right-click either of the Max statistics headings and select Heading Properties. In the Heading Properties for Max window, type High in the Label field. Click OK to close the window. h. Modify the heading properties for Country to display Salary Ranges by Country. 1) Right-click the Country heading and select Heading Properties. 2) In the Heading Properties for Country window, type Salary Ranges by Country in the Label field. Click OK to close the window. i. Modify the table properties to display missing values as a single hyphen. 1) Right-click in the table and select Table Properties. 2) In the Table properties window, delete the period and type a hyphen (-) in the Label for missing value field. Click OK to close the window. j. Change the task label to Salary Ranges by Country. 1) Select Properties in the Selection pane and click Edit. 2) Type Salary Ranges by Country in the Label field and click OK. k. Generate the report and save the Chapter5 project. 1) Click Run. Click Yes when you are prompted to replace the results. View the updated report. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-26 Chapter 5 Creating Summarized Output 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter5 in the File name field and select Save. 5. Creating a Summary Tables Report with Multiple Statistics and Highlighting Use the Summary Tables task to generate a report that calculates the frequency, percent of column frequency, and percent of column sum by department for each city in Australia. a. In the Chapter5 project, open the employee_master table and the Summary Tables Wizard. 1) In the project tree or process flow, double-click the employee_master table to open the data grid. 2) Select Describe Summary Tables Wizard. b. Edit the data so that only employees from Australia are included in the report. 1) In Step 1 of the wizard, confirm that the employee_master table is being processed. Click Edit. 2) In the first field of the Edit Data and Filter window, use the drop-down menu to select the Country column. 3) In the second field, use the drop-down menu to select Equal to. In the third field, click Select AU and click OK twice. . 4) Click Next. c. Add the Salary variable as the analysis variable three times and select the first statistic as Frequency, the second statistic as % of Column Frequency, and the third statistic as % of Column Sum. Hide the analysis variable label. 1) In Step 2, click Add and select Salary from the list. Repeat these steps twice so that Salary is listed three times. Notice at this point that the statistic for all lines is Sum. a) Click in the statistic column for the first Salary row. Use the drop-down menu to select the Frequency statistic. b) Click in the statistic column for the second Salary row. Use the drop-down menu to select the % of Column Frequency statistic. c) Click in the statistic column for the second Salary row. Use the drop-down menu to select the % of Column Sum statistic. 2) In the Analysis variable labels field, use the drop-down menu to select hidden. 3) Click Next. d. Add City as the column classification variable and Department as the row classification variable. Hide the row and column headings. 1) In Step 3, click Add for the Columns section and select the City column from the list. 2) Click Add in the Rows section and select the Department column from the list. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.3 Solutions 5-27 3) Click the More Options button. Select the Hide the row headers and the Hide the column headers check boxes. Click OK to close the More Options window. 4) Click Next three times to move to Step 6 of the wizard. e. Type Summary of Salaries for Australia by Department as the title and delete the footnote. Submit the task and view the report. 1) In Step 6, delete the current text in the Table Titles field, and type Summary of Salaries for Australia by Department. 2) Delete the text in the Footnote field. 3) Click Finish and view the report. f. Modify the report by opening the task in Advanced View. Use the Summary Tables preview to delete ColPctN from the Total column. Hint: Delete Salary first and then delete ColPctN. 1) In the project tree or process flow, right-click the Summary Tables icon under the employee_master table. Select Open Open in Advanced View. 2) Select the Summary Tables pane. 3) In the Total column, right-click the Salary cell above the ColPctN statistic and select Remove Cells. Right-click the ColPctN statistic and select Remove Cells. This deletes % of Column Frequency from the Total column. 4) Right-click the ColPctSum statistic under the Total column, and select Heading Properties. Type Percent of Total Salaries in the Label field. Click OK. g. Modify the headings to match the final output below. Change the background color of the data values in the Total row and Total column to light orange. 1) Right-click either N statistic under the city variable, and select Heading Properties. Type Employee Count in the Label field. Click OK. 2) Right-click either ColPctN statistic under the city variable, and select Heading Properties. Type Percent of Employees in the Label field. Click OK. 3) Right-click either ColPctSum statistic under the city variable, and select Heading Properties. Type Percent of Salaries in the Label field. Click OK. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-28 Chapter 5 Creating Summarized Output 4) Right-click the N statistic under the Total column, and select Heading Properties. Type Total Employees in the Label field. Click OK. 5) Select the column Total heading. Right-click and select Data Value Properties. In the Data Values Properties for All window, click the Font tab. Use the drop-down menu for the Background color to select Light Orange. Click OK. 6) Select the row Total heading. Right-click and select Data Value Properties. In the Data Values Properties for All window, click the Font tab. Use the drop-down menu for the Background color to select Light Orange. Click OK. h. Change the task label to AU Salary Report. Generate the report and save the Chapter5 project. 1) Select Properties in the Selection pane and click Edit. 2) Type AU Salary Report in the Label field and click OK. 3) Click Run Yes when you are prompted to replace the results. 4) Click on the toolbar. 5) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter5 in the File name field and select Save. 6. Creating and Applying a Custom Percentage Format You might want to display a percent sign (%) after the percentage values in your table created by the Summary Tables task. If you use the PERCENTw.d format, it multiplies data values by 100, and then adds a percent sign (%) to the end of the formatted value. The Summary Tables task already multiplied the values by 100 to compute the percent. Therefore, if you use the PERCENTw.d format to format the values, they are incorrect. Because you do not want the value multiplied by 100, you need to create a picture format. Use PROC FORMAT to add the percent sign to the value. a. Complete the Level 2 exercise. Refer to the solutions for the previous exercise. b. Open and run the e105e06 SAS program. This program creates a user-defined format named MYPCT that rounds values to the nearest tenth and adds a percent sign. 1) Select File Open Program. 2) Navigate to the location of the course data and select e105e06 Open. 3) On the Program tab, click Run. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5.3 Solutions 5-29 c. Modify AU Salary Report, which was created in the Level 2 exercise. Apply the MYPCT format by modifying the data value properties for all percentage columns in the report. Look for the User Defined category in the Format window. 1) Right-click the AU Salary Report task that was produced in the previous exercise and select Modify Summary Tables. 2) Select Summary Tables. 3) Right-click each ColPctN and ColPctSum column and select Data Value Properties. 4) Click the Format tab and the User Defined category. Highlight the MYPCT. format. Click OK. d. Generate the report and save the Chapter5 project. 1) Click Run Yes when you are prompted to replace the results. View the updated report. 2) Click on the toolbar. 3) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter5 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 5-30 Chapter 5 Creating Summarized Output Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Chapter 6 Using Prompts in Tasks and Queries 6.1 Prompting in Projects .................................................................................................... 6-3 6.2 Creating and Using Prompts in Tasks .......................................................................... 6-6 Demonstration: Prompting in Tasks ..................................................................................... 6-10 Exercises .............................................................................................................................. 6-13 6.3 Creating and Using Prompts in Queries..................................................................... 6-14 Demonstration: Prompting in Queries .................................................................................. 6-17 Exercises .............................................................................................................................. 6-19 6.4 Solutions ....................................................................................................................... 6-23 Solutions to Exercises .......................................................................................................... 6-23 Solutions to Student Activities (Quizzes/Polls) ..................................................................... 6-33 6-2 Chapter 6 Using Prompts in Tasks and Queries Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.1 Prompting in Projects 6-3 6.1 Prompting in Projects Objectives Define a prompt. Illustrate examples of prompts. 3 Prompts Prompts enable you to request input from the user when a task, query, or SAS program is run. 4 Prompts create SAS macro variables that can be used in tasks, queries, SAS programs, and SAS Stored Processes. Values for the macro variables are assigned at run time, and are typically based on user input. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-4 Chapter 6 Using Prompts in Tasks and Queries Prompt Examples Possible prompts include the following: variable lists date values color selection text or numeric entry 5 single or multiple selection from a list Prompt Manager Prompts are stored in a project. You can use the Prompt Manager section of the Resources pane to create, edit, and delete prompts. 6 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.1 Prompting in Projects Setup for the Poll 1. Open the e106a01.egp project. 2. Select Yes when you are prompted to run the Autoexec process flow. 3. In the Specify Values for Project Prompts window, do the following: On the Customer Age Group menu, select 31-45 years. In the Orders with profits exceeding field, type 100. 4. Run the query. 7 6.01 Multiple Choice Poll How many rows were returned in the query result? a. b. c. d. 0 58 76 617 8 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-5 6-6 Chapter 6 Using Prompts in Tasks and Queries 6.2 Creating and Using Prompts in Tasks Objectives List steps for adding a prompt to a task. Define general prompt properties. Define the prompt type and values. Retrieve prompt values from a data source. Use prompts in a task. 11 Business Scenario The CEO at Orion Star wants the ability to view a pie chart that illustrates the distribution of profit based on different categories. He does not want a separate pie chart for each category. He prefers to be able to access a single task, and at run time, specify the variable to analyze. 12 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.2 Creating and Using Prompts in Tasks 6-7 Prompts in Tasks Adding a prompt to a task is a two-step process. 1. Create a prompt. 2. Use the prompt definition in a task. 13 Creating a Prompt: General When you create a prompt, you must first specify the general properties of the prompt, such as the name, displayed text, description, and options. 14 On the General tab, enter a unique name for the prompt in the Name field. Names can contain only alphanumeric characters and underscores, cannot begin with a number, and cannot exceed 32 characters. In the Displayed text field, enter the text that the user sees when the prompt is run. By default, the displayed text is the same as the prompt name. In the Description field, enter an optional description that is displayed when the prompt is run. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-8 Chapter 6 Using Prompts in Tasks and Queries You can select any of the following options: Hide from user Specifies whether the user is able to view the prompt and its value. Requires a non-blank value Specifies whether the user is required to provide a non-blank value. Read-only values Specifies whether the user can change the value of the prompt. Use prompt value throughout project Specifies whether the value or values that a user assigns to a prompt can be used by other tasks, queries, and programs in the project. If you do not select this option, then the values are deleted after the code is run. 6.02 Multiple Answer Poll Which of the following are valid names for prompts? a. Select Country b. Select_a_Category c. Profit$Segments d. 1stQtrValues e. Qtr1Values 15 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.2 Creating and Using Prompts in Tasks Creating a Prompt: Prompt Type and Values By selecting Variable as the prompt type, you can assign the prompt to task roles in tasks. The prompt value list can be populated by the variable names from an existing data source. 17 For more details about each available prompt type, select Help SAS Enterprise Guide Help. On the Contents tab, expand Working with Prompts Creating a Prompt and select Selecting the prompt type and its values. Using a Prompt: Variable Type Variable type prompts appear in tasks as an additional variable that can be assigned to task roles or used in titles and footnotes. 18 In the code, macro variables are referenced by preceding the prompt name with & (an ampersand). Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-9 6-10 Chapter 6 Using Prompts in Tasks and Queries Prompting in Tasks Create a variable prompt for the Pie Chart task. This prompt enables the CEO at Orion Star to view a pie chart that illustrates the distribution of profit based on different categories. 1. Create a new project and add the orion_profit data set. 2. Begin creating the prompt that lists the variables that can be used to segment the slices of the pie chart. Click the Prompt Manager button in the Resources pane. Select Add. If you do not see the Prompt Manager, select View Prompt Manager. 3. On the General tab, type ProfitCategories in the Name field. Type Select a variable to segment the pie chart: in the Displayed text field. Select the Requires a non-blank value check box. 4. On the Prompt Type and Values tab, change the prompt type to Variable so that the prompt is accessible in tasks. To populate the prompt list with variables from the orion_profit data set, select Load Values. By default, the selected Variable type value is Character. If you select Load Values, all character columns from the selected table are added to the list. You can use the Variable type pane to select other column types. 5. In the Open file window, select Project orion_profit Open. All character variables from the orion_profit data set are entered into the list. Because Customer_Name and Product_Name are not appropriate variables to use in the Bar Chart task, remove them from the list by highlighting both . variables and clicking Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.2 Creating and Using Prompts in Tasks 6-11 6. To assign a default value, select the Default value check box and double-click Product_Category. Click OK to close the Add New Prompt window. 7. In the data grid, select Graph Pie Chart Wizard. 8. Click Next to advance to Step 2. Select the ProfitCategories prompt in the Slice drop-down list and Profit in the Slice size drop-down list. Click Next. 9. In Step 3, select 3D chart. Verify that the Slice name and Data value check boxes are selected. To add the percentage on the inside of each slice, select the Percentage check box. Change the value to Inside. Click Next. 10. In Step 4, delete the default title and type Profit by &ProfitCategories. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-12 Chapter 6 Using Prompts in Tasks and Queries 11. Click Finish. At the prompt, select Customer_Country Run and examine the results. A warning symbol might appear on the task icon. This symbol indicates a warning in the log regarding overlapping text in the graph. 12. On the Results tab, click Refresh. At the prompt, select Product_Category Run. 13. Save the project as Chapter6. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.2 Creating and Using Prompts in Tasks 6-13 Exercises Level 1 1. Creating a Variable Type Prompt and Using It in a Bar Chart Create a prompt so that the user can select a variable from the employee_master table for the charting variable. a. In the Chapter6 project, add the employee_master table. If you do not have Chapter6 project, you can create a new project. b. Use the Prompt Manager to create a new prompt. On the General tab, type SelectVar in the Name field and Which column do you want to analyze? in the Displayed text field. Set an option to require a value for this prompt. c. On the Prompt Type and Values tab, change the prompt type to Variable. d. Type or use the Load Values button to populate the Value list box with Employee_Gender, City, Country, and Department. Assign City as the default value. e. Use the Bar Chart Wizard to create a three-dimensional horizontal bar chart based on employee_master. Use the SelectVar prompt to specify the bars. Select Salary as the variable to control the bar length. Use to set the statistic type as Average. f. Change the following display attributes: • Color the bars separately. • Display the data labels, and show the average salary. • Change the horizontal axis label to Average Annual Salary. • Assign Average Annual Salary by &SelectVar as the title and delete the footnote. g. Using the default variable City for the prompt value, run the wizard. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-14 Chapter 6 Using Prompts in Tasks and Queries Results To use another charting variable, click the Refresh button in the Graph window and select another variable in the prompt. h. Save the Chapter6 project. 6.3 Creating and Using Prompts in Queries Objectives List prompt types that can be used in query filters. Retrieve prompt values from a data source. Use prompts in a query. 24 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.3 Creating and Using Prompts in Queries Business Scenario Suppliers frequently request a summary of the orders for their products. Rather than create a task or report for each supplier, the supplier services representative at Orion prefers to create a report by choosing a particular supplier at run time. 25 Using a Prompt: Text, Numeric, Date Types Text, numeric, and date type prompts can be used in the Query Builder to filter data. 26 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-15 6-16 Chapter 6 Using Prompts in Tasks and Queries Creating a Prompt in the Query Builder You can create prompts by accessing the Prompt Manager directly in the Query Builder. 27 Creating a Prompt for a Query Text, numeric, date, and time prompt types can be used to enable the selection of values to be used in a filter. Select Get Values to load data values from an existing data source into the prompt list. 28 When you create a prompt, you must specify how the values for the prompt are obtained. You use the Method for populating prompt drop-down list. You can use these three methods: User enters values Specifies that the user enters the value or values when the prompt is run. User selects values from a static list Specifies that the user selects from a fixed set of values that you define when you create the prompt. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.3 Creating and Using Prompts in Queries User selects values from a dynamic list 6-17 Specifies that the user selects from a list of unique values. This list is populated by values from the selected data source when the prompt is run. For this option, the data source must be defined in a SAS folder. Prompting in Queries Create a text prompt and use it in a query to extract orders for a specific supplier. Generate a report for the orders and include the supplier name in the title. 1. In the Chapter6 project, right-click orion_profit in the project tree or process flow, and select Query Builder. 2. Type Choose a Supplier Query in the Query name field. Click Change and type SupplierOrders in the File name field. Select Save. 3. On the Select Data tab, add Product_ID, Product_Name, Order_Date, Quantity, and Profit. 4. To build a prompt that enables the selection of a single supplier, select Prompt Manager Add. 5. On the General tab, type ChooseSupplier in the Name field and Select a Supplier: in the Displayed text field. Select the Requires a non-blank value and Use prompt value throughout project check boxes. Selecting the Use prompt value throughout project check box enables you to use the prompt value in future tasks. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-18 Chapter 6 Using Prompts in Tasks and Queries 6. On the Prompt Type and Values tab, verify that the prompt type is Text. Change the method for populating the prompt to User selects values from a static list. To populate the list with supplier names from the orion_profit data set, select Get Values. 7. To define the data source, click Browse Project orion_profit Open. 8. Change the column value in the Unformatted Values pane to Supplier_Name. 9. Select Get values and click to fill the prompt list with all Supplier_Name values. 10. Click OK OK Close to return to the Query Builder. 11. To use the prompt in a filter, click the Filter Data tab. Drag and drop Supplier_Name onto the tab next to the Value field area. In the New Filter Wizard, verify that the operator is Equal to. Click and select Prompts &ChooseSupplier. Click Finish. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.3 Creating and Using Prompts in Queries 6-19 12. To create a report that includes the name of the selected supplier in the title, select Options. Select the Override the corresponding default settings in Tools->Options check box and select Report. 13. Select Titles in the Selection pane and select the Override the corresponding default settings in Tools->Options check box. Type Orders for &ChooseSupplier. Click OK. 14. Click Run. At the prompt, select Carolina Sports Run. Verify that 11 rows are returned. 15. Select Refresh to run the query again and select a different supplier. Save the Chapter6 project. Exercises Level 1 2. Creating a Text Prompt and Using It in a Query Use the Prompt Manager to create a text prompt that enables the user to select a city. Use the prompt to filter the employee_master table in a query. a. In the Chapter6 project, add the employee_master table if necessary. If you do not have the Chapter6 project, you can create a new project. b. Open the Query Builder. Name the query Select City Query and the output table select_city. Include all columns in the query. c. Use the Prompt Manager to create a new prompt. On the General tab, type SelectCity in the Name field and Select a City: in the Displayed text field. Set an option to require a value for this prompt. d. On the Prompt Type and Values tab, verify that Text is the prompt type. In the Method for populating the prompt drop-down list, select User selects values from a static list. e. Click the Get Values button to populate the prompt list with the distinct values of City from the employee_master data set. Set the default value as Miami-Dade. f. On the Filter Data tab, create a filter on the City column so that the value is equal to the prompt, SelectCity. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-20 Chapter 6 Using Prompts in Tasks and Queries g. Run the query and use the default city, Miami-Dade. Partial Results (8 of 85 rows, 9 of 15 columns) h. Click to rerun the query. Select Sydney in the prompt and click Run. Partial Results (8 of 47 rows) i. Save the Chapter6 project. Level 2 3. Creating a Date Range Prompt and Using It in a Query Use the Prompt Manager and the Query Builder to create a query that prompts the user to subset the employee_master table for a specified range of hire dates. a. In the Chapter6 project, create a query based on the employee_master table. Name the query Employee Hire Date Query and name the output table employee_hire_date. Add all columns to the query. b. Create a prompt that enables a selection for a range of dates. Name the prompt DateRange and the displayed text Select a beginning and end date for the employee hire date range. The prompt type should be Date range and the date type should be Day. c. Create a filter on the Employee_Hire_Date column. Set the operator to In a range. Use the prompt that you created to select the date range at execution. d. Sort the results by ascending Employee_Hire_Date. e. Submit the query and set the range of dates from January 1, 1976 to December 31, 1989. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.3 Creating and Using Prompts in Queries Partial Results (8 of 113 rows, 5 of 15 columns) f. Save the Chapter6 project. 4. Creating a Multiple Value Prompt Use the Prompt Manager to create a multiple value selection prompt for the City column. a. In the Chapter6 project, create a prompt named SelectCities that enables the selection of one or more cities and appears as follows: If you do not have the Chapter6 project, you can create a new project and add the employee_master data set. b. Create a query based on the employee_master table. Name the query Multi-Cities Query and the output table Multi_Cities. Include all columns on the Select Data tab. c. Build a filter that includes only those cities that are in the list of cities selected in the prompt. d. Run the query and select Melbourne and Sydney for the cities. Verify the results and save the Chapter6 project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-21 6-22 Chapter 6 Using Prompts in Tasks and Queries Partial Results (8 of 73 rows, 9 of 15 columns) Challenge 5. Using a Prompt in a SAS Program Create a prompt that can be used as a macro variable in a SAS program. a. In the Chapter6 project, add the e106e5.sas program. Notice that the program includes a WHERE statement that filters the data to include only employees in the Administration Department. Run the program and verify that 31 rows are returned. b. Create a prompt named SelectDept that enables the selection of any department from the employee_master table. The prompt should appear as follows: c. Modify the WHERE statement in the SAS program to reference the SelectDept prompt (macro variable) rather than Department. d. Modify the properties of the program by clicking Add the &SelectDept prompt to the properties. in the Program toolbar. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.4 Solutions 6-23 e. Run the program with Engineering as the selected value and verify the results. Save the Chapter6 project. 6.4 Solutions Solutions to Exercises 1. Creating a Variable Type Prompt and Using It in a Bar Chart Create a prompt so that the user can select a variable from the employee_master table for the charting variable. a. In the Chapter6 project, add the employee_master table. If you do not have the Chapter6 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Use the Prompt Manager to create a new prompt. On the General tab, type SelectVar in the Name field and Which column do you want to analyze? in the Displayed text field. Set an option to require a value for this prompt. 1) Select View Prompt Manager to open the Prompt Manager window in the lower left part of the Enterprise Guide session. 2) Select Add to open the Add New Prompt window. 3) Type SelectVar in the Name field and Which column do you want to analyze? in the Displayed text field. 4) Select the Requires a non-blank value check box. c. On the Prompt Type and Values tab, change the prompt type to Variable. 1) Click the Prompt Type and Values tab. 2) Select Variable from the Prompt type drop-down list. d. Type or use the Load Values button to populate the Value list box with Employee_Gender, City, Country, and Department. Assign City as the default value. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-24 Chapter 6 Using Prompts in Tasks and Queries 1) Select Load Values. In the Open File window, select Project employee_master Open. 2) All character variables in the employee_master table are added in the Variable List pane. Hold down the Ctrl key and select Employee_Name, Street_Name, State, Postal_Code, and Job_Title. Click . 3) Select the Default value check box in the Options pane. Double-click City in the Values list. 4) Click OK. e. Use the Bar Chart Wizard to create a three-dimensional horizontal bar chart based on employee_master. Use the SelectVar prompt to specify the bars. Select Salary as to set the statistic type as Average. the variable to control the bar length. Use 1) Select employee_master in the project tree or process flow. Select Tasks Graph Bar Chart Wizard. 2) In Step 1, verify that employee_master is the data set and click Next. 3) In Step 2, select the Horizontal bar chart check box. 4) Use the drop-down menu to select SelectVar as the bars variable. 5) Use the drop-down menu to select Salary as the bar length variable. 6) Click . In the Statistic window, select Average OK. 7) Click Next. f. Change the following display attributes: • Color the bars separately. • Display data labels, and show the average salary. • Change the horizontal axis label to Average Annual Salary. • Assign Average Annual Salary by &SelectVar as the title and delete the footnote. 1) In Step 3, select the 3D chart check box. 2) Select Bar category from the Color bars by drop-down list. 3) Select the Data labels check box. Use the drop-down list to select Average as the displayed statistic. 4) Select Axis Labels. In the Bar length field, type Average Annual Salary. 5) Click OK Next. 6) In Step 4, delete the default title and type Average Annual Salary by &SelectVar. g. Using the default variable City for the prompt value, run the wizard. 1) Click Finish. 2) In the Specify Values for Project Prompts window, verify that City is selected. 3) Click Run and view the results. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.4 Solutions 6-25 To use another charting variable, click the Refresh button in the Graph window and select another variable in the prompt. Results h. Save the Chapter6 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter6 in the File name field and select Save. 2. Creating a Text Prompt and Using It in a Query Use the Prompt Manager to create a text prompt that enables the user to select a city. Use the prompt to filter the employee_master table in a query. a. In the Chapter6 project, add the employee_master table if necessary. If you do not have the Chapter6 project, you can create a new project. 1) Select File Open Data and navigate to the location of the course data. 2) Select employee_master Open. b. Open the Query Builder. Name the query Select City Query and the output table select_city. Include all columns in the query. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-26 Chapter 6 Using Prompts in Tasks and Queries 1) Right-click the employee_master table in the project tree or process flow and select Query Builder. 2) Type Select City Query in the Query name field. 3) Click Change. In the File name field, type select_city and select Save. 4) Right-click t1 (employee_master) and select Select All Columns. c. Use the Prompt Manager to create a new prompt. On the General tab, type SelectCity in the Name field and Select a City: in the Displayed text field. Set an option to require a value for this prompt. 1) Select Prompt Manager Add. 2) Type SelectCity in the Name field. 3) Type Select a City: in the Displayed text field. 4) Select the Requires a non-blank value check box. d. On the Prompt Type and Values tab, verify that Text is the prompt type. In the Method for populating the prompt drop-down list, select User selects values from a static list. 1) Click the Prompt Type and Values tab. Verify that the Prompt type is Text. 2) Use the Method for populating prompt drop-down list to select User selects values from a static list. 3) Verify that the Number of values field is set to Single value. e. Click the Get Values button to populate the prompt list with the distinct values of City from the employee_master data set. Set the default value as Miami-Dade. 1) Select Get Values Browse. 2) Select Project employee_master Open. 3) In the Unformatted Values pane, use the drop-down menu to select City. 4) Select Get Values in the Available values pane. The five city values are displayed. 5) Move all five values to the Selected values pane by clicking . 6) Click OK to close the Get Values window. 7) In the List of values pane, select the radio button in the Default column for Miami-Dade. 8) Click OK Close. f. On the Filter Data tab, create a filter on the City column so that the value is equal to the prompt, SelectCity. 1) Drag and drop City into the Filter Data pane. This opens the New Filter window. 2) In Step 1, verify that the operator is set to Equal to. 3) Select the Generate filter for a prompt value check box. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.4 Solutions 4) Click 6-27 next to the Value field. Click the Prompts tab and select &SelectCity. 5) Click Next. 6) Review the summary and Click Finish. g. Run the query and use the default city, Miami-Dade. 1) Click Run in the Query Builder. 2) Verify that Miami-Dade is the selected city in the Specify Values for Project Prompts window. Click Run. 3) Verify that the output table has 85 rows. Partial Results (8 of 85 rows, 9 of 15 columns) h. Click 1) Click to rerun the query. Select Sydney in the prompt and select Run. . The Specify Values for Project Prompt window appears. 2) Use the drop-down menu to select Sydney. 3) Click Run and verify that the output table has 47 rows. Partial Results (8 of 47 rows) i. Save the Chapter6 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter6 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-28 Chapter 6 Using Prompts in Tasks and Queries 3. Creating a Date Range Prompt and Using It in a Query Use the Prompt Manager and the Query Builder to create a query that prompts the user to subset the employee_master table for a specified range of hire dates. a. In the Chapter6 project, create a query based on the employee_master table. Name the query Employee Hire Date Query and name the output table employee_hire_date. Add all columns to the query. If you do not have the Chapter6 project, you can create a new project and add the employee_master data set. 1) In the project tree, right-click the employee_master data set and select Query Builder. 2) Type Employee Hire Date Query in the Query name field. 3) Click Change and type employee_hire_date in the File name field. Select Save. 4) With the Select Data tab active, right-click t1 (employee_master), and select Select All Columns. b. Create a prompt that enables a selection for a range of dates. Name the prompt DateRange and the displayed text Select a beginning and end date for the employee hire date range. The prompt type should be Date range and the date type should be Day. 1) Select Prompt Manager Add. 2) In the Name field, type DateRange. In the Displayed Text field, type Select a beginning and end date for the employee hire date range. 3) Select the Requires a non-blank value check box. 4) Click the Prompt Type and Values tab. 5) Change the prompt type value to Date range. 6) Verify that the Date type field value is Day. Click OK Close. c. Create a filter on the Employee_Hire_Date column. Set the operator to In a range. Use the prompt that you created to select the date range at execution. 1) Drag and drop the Employee_Hire_Date column onto the Filter Data tab. 2) In Step 1 of the New Filter window, use the drop-down menu to select In a range for the operator. 3) Select the drop-down arrow for the Value field and select DateRange. 4) Click Next. 5) In Step 2, view the summary and click Finish to complete the filter. d. Sort the results by ascending Employee_Hire_Date. 1) Click the Sort Data tab. 2) Drag Employee_Hire_Date onto the Sort Data tab. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.4 Solutions 6-29 e. Submit the query and set the range of dates from January 1, 1976 to December 31, 1989. 1) In the Query Builder, click Run. 2) In the Specify Values for Project Prompt window, select January 1 for any year. Then delete the year and type 1976. Type December 31, 1989 in the To field. Partial Results (8 of 113 rows, 5 of 15 columns) f. Save the Chapter6 project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter6 in the File name field and select Save. 4. Creating a Multiple Value Prompt Use the Prompt Manager to create a multiple value selection prompt for the City column. a. In the Chapter6 project, create a prompt named SelectCities that enables the selection of one or more cities and appears as follows: If you do not have the Chapter6 project, you can create a new project and add the employee_master data set. 1) Select Add in the Prompt Manager window. 2) On the General tab, type SelectCities in the Name field and type Select Cities to Include: in the Display Text field. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-30 Chapter 6 Using Prompts in Tasks and Queries 3) Select the Requires a non-blank value check box. 4) Click the Prompt Type and Values tab. 5) On the Prompt Type and Values tab, verify that the prompt type is Text. Change the Method of populating prompt value to User selects value from a static list. 6) Change the Number of values field to Multiple values. 7) Select Get Values Browse. In the Open File window, select Project employee_master Open. 8) Use the drop-down list in the Unformatted values field to select City. 9) Select Get Values. The five city values are populated in the Available values pane. to move all cites to the Selected values pane. 10) Click 11) Click OK OK. b. Create a query based on the employee_master table. Name the query Multi-Cities Query and the output table Multi_Cities. Include all columns on the Select Data tab. 1) Right-click the employee_master table in the project tree or process flow and select Query Builder. 2) In the Query Builder, type Multi-Cities Query in the Name field. 3) Click Change and type Multi_Cities in the File name field. Select Save. 4) With the Select Data tab active, right-click t1 (employee_master) and select Select All Columns. c. Build a filter that includes only those cities that are in the list of cities selected in the prompt. 1) Click the Filter Data tab. 2) Drag and drop City onto the tab area. 3) In the New Filter window, change the operator to In a list. 4) Select the Generate filter for a prompt value check box. 5) Select the drop-down arrow next to the Value field and select Prompts &SelectCities. 6) Click Next Finish. d. Run the query and select Melbourne and Sydney for the cities. Verify the results and save the Chapter6 project. 1) Click Run. 2) In the prompt, hold down the Ctrl key and select Melbourne and Sydney. 3) Click to move the columns to the Selected pane. 4) Click Run and verify that the output table has 73 rows. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.4 Solutions 5) Click 6-31 on the toolbar. 6) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter6 in the File name field and select Save. Partial Results (8 of 73 rows, 9 of 15 columns) 5. Using a Prompt in a SAS Program Create a prompt that can be used as a macro variable in a SAS program. a. In the Chapter6 project, add the e106e5.sas program. Notice that the program includes a WHERE statement that filters the data to include only employees in the Administration Department. Run the program and verify that 31 rows are returned. 1) Select File Open Program. 2) Navigate to the location of the course data and select e106e5.sas Open. 3) If necessary, modify the SET statement to provide the path of the course data. 4) Click Run. b. Create a prompt named SelectDept that enables the selection of any department from the employee_master table. The prompt should appear as follows: 1) Select Prompt Manager in the Resources pane and select Add. 2) Type SelectDept in the Name field and Choose a department to create employee address labels: in the Display text field. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-32 Chapter 6 Using Prompts in Tasks and Queries 3) Select the Requires a non-blank value check box. 4) Click the Prompt Type and Values tab. 5) Change the Method for populating prompt drop-down list to User selects values from a static list. 6) To populate the list, select Get Values Browse. 7) In the Open File dialog box, select Project employee_master Open. 8) In the Unformatted values pane, select Department from the Column drop-down list. 9) Select Get Values and click to move all values to the Selected values window. 10) Click OK OK. c. Modify the WHERE statement in the SAS program to reference the SelectDept prompt (macro variable) rather than Department. Change the WHERE statement so that it appears as follows: where Department="&SelectDept"; d. Modify the properties of the program by clicking Add the &SelectDept prompt to the properties. 1) In the toolbar of the Program tab, click in the Program toolbar. . 2) Select Prompts in the Selection pane. Select Add SelectDept OK OK. e. Run the program with Engineering as the selected value and verify the results. Save the Chapter6 project. 1) Click Run Yes when you are prompted to replace the results. 2) In the prompt, select Engineering Run. 3) Click on the toolbar. 4) If the Save window appears, navigate to the location that is specified by your instructor. Type Chapter6 in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6.4 Solutions Solutions to Student Activities (Quizzes/Polls) 6.01 Multiple Choice Poll – Correct Answer How many rows were returned in the query result? a. b. c. d. 0 58 76 617 Partial Results 9 6.02 Multiple Answer Poll – Correct Answers Which of the following are valid names for prompts? a. Select Country b. Select_a_Category c. Profit$Segments d. 1stQtrValues e. Qtr1Values Names can contain only alphanumeric characters and underscores, cannot begin with a number, and cannot exceed 32 characters. 16 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 6-33 6-34 Chapter 6 Using Prompts in Tasks and Queries Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Chapter 7 Customizing and Organizing Project Results 7.1 Combining Results ......................................................................................................... 7-3 Demonstration: Combining Results ....................................................................................... 7-5 Exercises ................................................................................................................................ 7-8 7.2 Updating and Organizing Projects ................................................................................ 7-9 Demonstration: Updating Results ........................................................................................ 7-15 Exercises .............................................................................................................................. 7-18 7.3 Solutions ....................................................................................................................... 7-19 Solutions to Exercises .......................................................................................................... 7-19 Solutions to Student Activities (Quizzes/Polls) ..................................................................... 7-24 7-2 Chapter 7 Customizing and Organizing Project Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.1 Combining Results 7.1 Combining Results Objectives Combine results from multiple tasks. Customize the report layout. Save and export the document as HTML and PDF files. 3 Business Scenario Analysts at Orion Star need to combine results from the Profit Analysis project into a single HTML or PDF report. 4 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-3 7-4 Chapter 7 Customizing and Organizing Project Results SAS Reports When you create results in SAS Report format, you can use those results to create a customized report that you can print, export, and share with other SAS applications. 5 Previewing Results After the report layout is created, additional menus enable further customization, including adding page headers and footers, removing task titles or footnotes, setting page margins, or inserting additional text. 6 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.1 Combining Results 7.01 Quiz Open the e107a01.egp project if it is not currently open. Double-click Days to Deliver Report in the project. Which buttons enable you to make the following changes? Change the page margins. Hide individual task titles or footnotes. Save the report as HTML, PDF, XML, or SAS Report. 7 Updating Results As tasks are rerun and updated, the report automatically includes the current results. 9 Combining Results Analysts at Orion Star want to combine the results from the Profit Analysis tasks into a single page. They want to save the report as an HTML file to publish it on the intranet. 1. Open the e107d01.egp project and click Yes to run the Autoexec process flow. 2. To begin creating a combined report, select File New Report. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-5 7-6 Chapter 7 Customizing and Organizing Project Results 3. Drag Profit by Cust Age Group, Profit by Product Category Summary, and Profit by Cust Cntry/Type to the positions. Expand the Profit by Cust Cntry/Type results to span two squares. 4. Click OK to close the Edit Report Contents window. 5. Select Header & Footer. On the Header tab, click Browse to locate the banner image. Navigate to the course data and select Orion-Banner.jpg Open. 6. In the Line section, click the Below header check box, and change Style to Double and Color to blue. 7. Click the Titles & Footnotes tab and clear Show All for the footnote column. Click OK. 8. Select Page Setup and change the orientation to Landscape. Click OK and Page View to preview the result. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.1 Combining Results 7-7 9. Right-click the Report icon in the project tree or process flow, and select Rename. Change the name to Profit Report. Press Enter. 10. To export the results, select Export Export Report As A Step In Project. 11. In Step 1, verify that Profit Report is highlighted and click Next. 12. In Step 2, select HTML Documents (*.html) Next. 13. In Step 3, navigate to the location that is specified by your instructor and name the file Profit Report.html. Click Next. 14. In Step 4, view the summary and click Finish to complete the export. The exported HTML file can then be published to the intranet or distributed to others to view in a browser. A new icon is added to the process flow. It branches from the tasks that are included in the report. Also, a new section named Custom Reports is added to the project, including the Report and Export tasks. You do not need to save the project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-8 Chapter 7 Customizing and Organizing Project Results Exercises Level 1 1. Creating a Report Using Multiple Results from the Available SAS Report Results Build a SAS report that combines the output from three different tasks into a single PDF document. a. Open and run the e107e01.egp project. b. Create a combined report. Use the One-Way Frequencies, Summary Tables, and Bar Chart SAS Report results. Build the report as it appears below. c. Select Header & Footer to add Orion-Banner.jpg as a banner image to the top of the report. d. Select Page Setup to change the page orientation to Landscape. e. Select Page View to preview the report. If the graph and frequency report do not appear side by side, return to Normal View to reduce the size of the graph. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.2 Updating and Organizing Projects f. Name the report Employee Report. g. Add a step in the project to export the combined report as a PDF document. Do not overwrite existing results. Each time that the Export task is run, a new file is created with a date and time. They are appended to the filename. You do not need to save the project. 7.2 Updating and Organizing Projects Objectives Demonstrate methods for updating project results. Run a subset of the process flow diagram. Build and run a new process flow diagram. 15 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-9 7-10 Chapter 7 Customizing and Organizing Project Results Business Scenario A large SAS Enterprise Guide project was created to analyze profit and shipping methods. The creator wants to organize the project so that it is easy to navigate and update. 16 Updating Results Selecting Run enables you to update the following: the highlighted project item the highlighted project item and all items that follow the current process flow the entire project 17 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.2 Updating and Organizing Projects Project Organization By default, when you run a process flow, project items run in order from left to right, and then top to bottom. 18 7.02 Quiz Open the e107a02.egp project. Double-click the customers table. What must be run first in the project in order to access the SAS data sets? 19 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-11 7-12 Chapter 7 Customizing and Organizing Project Results Modifying Task Links User-defined links can be added between project items to ensure that tasks run in a certain order. user-defined link (dashed line) automatic link (solid line) 21 Setup for the Poll 1. In the process flow, drag Assign Project Library to the top of the window. 2. Right-click Assign Project Library and select Link Assign Project Library to CUSTOMERS OK. 3. Select Run Run Process Flow. 22 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.2 Updating and Organizing Projects 7-13 7.03 Poll Double-click the CUSTOMERS table. Does it open? Yes No 23 Multiple Process Flows Creating multiple process flows provides another way to order and group similar tasks within a single project. 25 Using multiple process flows is a convenient way to group project items so that you can execute them as a group rather than individually. Using a process flow is particularly useful when the following conditions exist: • A specific order in which tasks and code should execute is present. For example, output from one task serves as input to another. • Changes to the underlying data and the tasks associated with a data source must be updated. • A desire to execute tasks outside of the SAS Enterprise Guide environment occurs. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-14 Chapter 7 Customizing and Organizing Project Results Autoexec Process Flow If there is a process flow named Autoexec, SAS Enterprise Guide prompts you to run the process flow each time that the project is opened. 26 Scheduling Updates Projects or individual process flows can be scheduled to update based on a certain time or event. 27 When you schedule an Enterprise Guide project via the Enterprise Guide scheduler, a Visual Basic script is created. This script is executed in accordance with the parameters that are supplied to the Windows Scheduler plug-in. If both the SAS server and the Enterprise Guide client reside on a single machine, scheduling a project is straightforward. However, if Enterprise Guide is configured to execute SAS processes on a remote server and the SAS server is configured to prompt for a user name and password, additional setup is required to enable the authentication process to complete. If logon credentials for the SAS Metadata Server cannot be saved on the local machine, scheduling of Enterprise Guide projects is not possible. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.2 Updating and Organizing Projects 7-15 Other Recommendations Rename project icons and table names to be more descriptive. Insert notes and link them to project icons to provide documentation. Use Auto-Arrange to create the process flow. Then turn it off to make specific adjustments. Change the color of the background for each process flow. 28 Updating Results The orders table is frequently updated, which requires all dependent tasks and queries to be rerun. Users of this project want to organize it so that they can easily update the queries, tasks, and reports related to the Profit analysis. 1. Open the e107d02.egp project. Notice that the entire project is contained in a single process flow. 2. To create a new process flow, select File New Process Flow. Click the Properties button and type Autoexec in the Label field. Click OK. You can drag the Autoexec flow to the top of the project tree so that it appears first. 3. To move project items into the Autoexec flow, double-click Process Flow in the project tree to return to the original process flow. 4. The Assign Project Library and Create Format tasks should run automatically when the project opens. Drag the cursor across the first two tasks to highlight them. Right-click one of the highlighted items and select Move To Autoexec. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-16 Chapter 7 Customizing and Organizing Project Results 5. In the Autoexec flow, select Run Run Autoexec. 6. Select Process Flow in the project tree and select Run Run Process Flow. Notice that the last task fails because the work.orderdata table does not exist. 7. The Days to Deliver Frequencies report can be run based on the data in the OrderDetail table. To switch the task to a new data source, right-click Days to Deliver Frequencies and select Select Input Data WORK.OrderDetail. 8. To update all tasks related to the OrderDetail table, highlight the icon in the process flow and select Run Run Branch from OrderDetail. Verify that the Days to Deliver report is created. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.2 Updating and Organizing Projects 7-17 9. To remove the orderdata table from the project, right-click on the icon in the project tree or process flow. Select Delete Yes. 10. The individual icons in the process flow can be arranged to improve the display. Right-click in the process flow and deselect Auto Arrange. You can then move project icons to the desired layout. Other options available in the pop-up menu of the process flow include the ability to print, zoom, and change the background color. You do not need to save the project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-18 Chapter 7 Customizing and Organizing Project Results Exercises Level 1 2. Creating a Process Flow Diagram a. Open the e107e02.egp project and run the Autoexec flow. b. Add a new process flow named Graphic Reports to the project. c. Add the Bar Chart and Pie Chart tasks and results to the new Graphic Reports process flow. d. Run the Graphic Reports process flow to update the results. You do not need to save the project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.3 Solutions 7-19 Challenge 3. Controlling Project Flow and Exporting Combined Code and the Log from a Project a. Open the e107e03.egp project and run the Autoexec flow. b. Manually link the Create Format task with the Employee_Master_code icon so that the Create Format task executes first. c. Click the Project Log button and turn on logging for the project. d. Run the entire project and view the project log. e. Select File Export Export All Code In Project to create a SAS program named EmployeeReports.sas. The program should include the code from all items in the project. f. Export the project log as a text file. You do not need to save the project. 7.3 Solutions Solutions to Exercises 1. Creating a Report Using Multiple Results from the Available SAS Report Results Build a SAS report that combines the output from three different tasks into a single PDF document. a. Open and run the e107e01.egp project. 1) Select File Open Project and navigate to the course data. Select e107e01.egp Open. 2) Click Yes when you are prompted to run the Autoexec flow. b. Create a combined report. Use the One-Way Frequencies, Summary Tables, and Bar Chart SAS Report results. 1) Select File New Report. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-20 Chapter 7 Customizing and Organizing Project Results 2) Drag and drop the One-Way Frequencies and Bar Chart results onto the first row of the data grid. Drag and drop the Summary Tables results in the second row and expand the box to cover two columns. 3) Click OK to create the report. c. Select Header & Footer to add Orion-Banner.jpg as a banner image to the top of the report. 1) Select Header & Footer. 2) Click Browse and navigate to the course data. 3) Select Orion-Banner.jpg Open. 4) Click OK. d. Select Page Setup to change the page orientation to Landscape. e. Select Page View to preview the report. If the graph and frequency report do not appear side by side, return to Normal View to reduce the size of the graph. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.3 Solutions 7-21 f. Name the report Employee Report. 1) In the project tree or process flow, right-click Report and select Rename. 2) Type Employee Report and press Enter. g. Add a step in the project to export the combined report to a PDF document. Do not overwrite existing results. Each time that the Export task is run, a new file is created with a date and time. They are appended to the filename. 1) Select Export Export Report As A Step In Project. 2) In Step 1, verify that Employee Report is highlighted and click Next. 3) In Step 2, select Portable Document Format (*.pdf). Click Next. 4) In Step 3, click Browse and navigate to the location of the course data. 5) Clear the Overwrite existing output check box. 6) Click Next Finish. You do not need to save the project. 2. Creating a Process Flow Diagram a. Open the e107e02.egp project and run the Autoexec flow. 1) Select File Open Project and navigate to the course data. Select e107e02.egp Open. 2) Click Yes when you are prompted to run the Autoexec flow. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-22 Chapter 7 Customizing and Organizing Project Results b. Add a new process flow named Graphic Reports to the project. 1) Select File New Process Flow. The new Process Flow window appears. 2) Click the Properties icon to access the Properties window. 3) Type Graphic Reports in the Label field and click OK. c. Add the Bar Chart and Pie Chart tasks and results to the new Graphic Reports process flow. 1) Use the Process Flow drop-down menu on the toolbar to select the Autoexec process flow. 2) In the Autoexec process flow, hold down the Ctrl key and select the Salary by Department Bar Chart, Salary by Country Pie Chart, and Salary by City Bar Chart tasks. 3) Right-click on any of the highlighted tasks and select Move to Graphic Reports. d. Run the Graphic Reports process flow to update the results. 1) Use the Process Flow drop-down menu on the toolbar to select the Graphic Reports process flow. 2) Right-click Graphic Reports in the process flow and select Run Graphic Reports. You do not need to save the project. 3. Controlling Project Flow and Exporting Combined Code and the Log from a Project a. Open the e107e03.egp project and run the Autoexec flow. 1) Select File Open Project. 2) Navigate to the location of the course data, select e107e03.egp, and select Open. b. Manually link the Create Format task with the Employee_Master_code icon so that the Create Format task executes first. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.3 Solutions 7-23 1) In the Reports process flow, click the Create Format icon, right-click, and select Link Create Format ($cntryfmt – Local) to. 2) In the Link window, select Employee_Master_code and click OK. c. Click the Project Log button and turn on logging for the project. 1) Click the Project Log button and click the Turn On button. 2) Return to the Reports Process Flow window by double-clicking Reports in the project tree or process flow. d. Run the entire project and view the project log. 1) Select Run Run Reports. 2) From the menu bar, select View Project Log. e. Select File Export Export All Code In Project to create a SAS program named EmployeeReports.sas. The program should include the code from all items in the project. 1) Select File Export Export All Code In Project. 2) Click Browse, navigate to the location of the course data, type EmployeeReports.sas in the File name field, and select Save. 3) Notice the options in the Export All Code window to include additional code that is generated by Enterprise Guide. 4) Select Export. f. Export the project log as a text file. 1) In the Reports Process Flow window, click the Project Log button. 2) In the Project Log window, select Export Export Project Log. 3) In the Export window, select the course location to save the file and type ProjectLog1 in the File name field. Save the file as a text (.txt) file. Select Save. You do not need to save the project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-24 Chapter 7 Customizing and Organizing Project Results Solutions to Student Activities (Quizzes/Polls) 7.01 Quiz – Correct Answer Open the e107a01.egp project if it is not currently open. Double-click Days to Deliver Report in the project. Which buttons enable you to make the following changes? Change the page margins. Page Setup Hide individual task titles or footnotes. Header & Footer Save the report as HTML, PDF, XML, or SAS Report. Export 8 7.02 Quiz – Correct Answer What must be run first in the project in order to access the SAS data sets? The Assign Project Library task must run first to create the orion library. 20 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7.3 Solutions 7.03 Poll – Correct Answer Double-click the CUSTOMERS table. Does it open? Yes No 24 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 7-25 7-26 Chapter 7 Customizing and Organizing Project Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Chapter 8 Learning More 8.1 SAS Resources ............................................................................................................... 8-3 8.2 Beyond This Course ....................................................................................................... 8-7 8-2 Chapter 8 Learning More Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8.1 SAS Resources 8.1 SAS Resources Objectives Identify the areas of support that SAS offers. 3 Education Comprehensive training delivers greater value to your organization. more than 200 course offerings world-class instructors multiple delivery methods: instructor-led and self-paced training centers around the world http://support.sas.com/training/ 4 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8-3 8-4 Chapter 8 Learning More SAS Publishing SAS offers a complete selection of publications to help customers use SAS software to its fullest potential. multiple delivery methods: e-books, CD-ROM, and hard-copy books wide spectrum of topics partnerships with outside authors, other publishers, and distributors http://support.sas.com/publishing/ 5 SAS Global Certification Program SAS offers several globally recognized certifications. computer-based certification exams – typically 60-70 questions and 2-3 hours in length preparation materials and practice exams worldwide directory of SAS Certified Professionals http://support.sas.com/certify/ 6 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8.1 SAS Resources Support SAS provides a variety of self-help and assisted-help resources. SAS Knowledge Base downloads and hot fixes license assistance SAS discussion forums SAS Technical Support http://support.sas.com/techsup/ 7 User Groups SAS supports many local, regional, international, and special-interest SAS user groups. SAS Global Forum online SAS Community: http://www.sasCommunity.org http://support.sas.com/usergroups/ 8 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8-5 8-6 Chapter 8 Learning More SAS Blogs SAS provides access to several featured blogs at http://blogs.sas.com. 9 SAS Blogs Visit http://blogs.sas.com/sasdummy to read about interesting tips and insights regarding SAS Enterprise Guide. 10 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8.2 Beyond This Course SAS Enterprise Guide Community Use the SAS Enterprise Guide Community to share your questions and experiences with other SAS customers. SAS employees occasionally respond to your posts. Visit https://communities.sas.com to participate in all discussion topics. 11 8.2 Beyond This Course Objectives Identify the next set of courses that follow this course. 13 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8-7 8-8 Chapter 8 Learning More Next Steps SAS® Enterprise Guide® 1: Querying and Reporting is the entry point to many areas of the SAS curriculum. SAS® Enterprise Guide® 1: Querying and Reporting Accessing and Manipulating Data Statistical Analysis Reports and Graphs 14 Next Steps To learn more about this: Manipulating data using SAS Enterprise Guide Enroll in the following: SAS® Enterprise Guide® 2: Advanced Tasks and Querying Producing advanced graphs and Creating Reports and Graphs reports using Enterprise Guide with SAS® Enterprise Guide® SAS Programming SAS® Programming 1: Essentials SAS Statistics Using SAS Enterprise Guide SAS® Enterprise Guide®: ANOVA, Regression, and Logistic Regression 15 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8.2 Beyond This Course Next Steps In addition, there are prerecorded, short, technical discussions and demonstrations that are referred to as e-lectures. http://support.sas.com/training/ 16 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. 8-9 8-10 Chapter 8 Learning More Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. Appendix A Writing and Submitting SAS® Programs A.1 Writing and Submitting SAS Programs ....................................................................... A-3 Demonstration: Adding a SAS Program to a Project ...........................................................A-12 Exercises ..............................................................................................................................A-19 A.2 Solutions ...................................................................................................................... A-22 Solutions to Exercises ..........................................................................................................A-22 Solutions to Student Activities (Polls/Quizzes) .....................................................................A-26 A-2 Appendix A Writing and Submitting SAS® Programs Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A-3 A.1 Writing and Submitting SAS Programs Objectives Create and submit new SAS programs. Insert existing programs into a project. List programming statements to avoid. Generate a combined project program and log. 2 Enterprise Guide Program Editor Enterprise Guide has a Program Editor that includes several advanced features: autocomplete dynamic syntax tooltips formatting programs to provide consistent spacing analyzing program flow 3 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-4 Appendix A Writing and Submitting SAS® Programs Writing a New SAS Program To build a SAS program, select File New Program to create a new code node in the project. The new program is saved along with the project. 4 Adding Existing Code To add a shortcut in the project to an existing SAS program, select File Open Program. 5 When you insert code, a shortcut to the file is added in the project. This means that changes made to the code in the project are also saved to the .sas file that you inserted when the project was saved. Also, if you make changes to the .sas file outside of Enterprise Guide, the changes are reflected when you open or run the project again. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A-5 Running SAS Code A SAS program can be submitted using one of these techniques: Select Run or Run Selection on the toolbar. Select Program Run or Run Selection on the menu bar. Right-click on the program and select Run or Run Selection. Press F8 or F3. 6 If SAS is available on multiple servers, you can select Select Server and designate the server on which the program should run. If the data for a task is located on a server that is different from the server where the SAS code is run, then Enterprise Guide copies the data to the server where the code actually runs. Moving large amounts of data over a network can be time and resource intensive. It is recommended that the server on which you choose to process the code be the same server on which the data resides. Accessing Program, Log, and Results The program, log, output data, and results are accessible via separate tabs. 7 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-6 Appendix A Writing and Submitting SAS® Programs Identifying Warning and Errors in the Log The code icons in the project indicate whether there are warnings or errors in the SAS log. Arrows on the Log tab enable quick navigation to the next warning or error. 8 Identifying Warning and Errors in the Log The Log Summary window list all notes, warnings, and errors messages. It enables direct navigation to any message. 9 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A.01 Quiz Open the SAS program e1Aa01.sas in SAS Enterprise Guide and run it. 1. Use the Log Summary and the Log windows to identify any errors. 2. Right-click on the error in the Log Summary window. Navigate to the line in the program that must be corrected. 3. Correct the program, and rerun it. e1Aa01.sas 10 A.02 Quiz Examine the Program and Log tabs. What differences do you observe? 12 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-7 A-8 Appendix A Writing and Submitting SAS® Programs Simplifying the Log You can suppress the wrapper code in the log by selecting Tools Options Results General. Then clear the Show generated wrapper code in SAS log check box. 14 Using the Program Toolbar A toolbar above the program offers easy access to common actions, such as the following: saving the program running or stopping a program selecting the execution server analyzing the program for flow or grid computing exporting and e-mailing creating a stored process modifying program properties 15 The Analyze Program button enables you to select one of these three options: • Analyze Program Flow: Enterprise Guide can create a process flow from a program. Using this process flow, you can quickly identify the different parts of the program and see how the parts are related. • Analyze for Grid Computing: When you analyze a program for grid computing, Enterprise Guide identifies the parts of the program that are not dependent on one another. These parts can run simultaneously on multiple computers. This means that Enterprise Guide returns the results faster. When SAS analyzes a program, lines of SAS/CONNECT code are added to your original program. Therefore, you must have a license for SAS Grid Manager or SAS/CONNECT to analyze a program for grid computing. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A-9 • Analyze for Internationalization: When you analyze a program for internationalization, Enterprise Guide identifies lines of code that might contain syntax that is specific to a particular geographic location. Examples include locale-specific currency and date formats or Unicode problems. When you analyze a program for internationalization, SAS Enterprise Guide lists the lines of code that might be affected and suggests substitutions when it is possible. All options run the code behind the scenes to complete the analysis. If a data set is open in the Enterprise Guide session, the analysis might fail. To view and close any open data sets, select Tools View Open Data Sets. Embedding Programs in a Project New SAS programs are embedded in the project so that it is saved as part of the .egp file. When an existing SAS program is added to a project, a shortcut to the program file is created. You can also embed the program so that it is stored as part of the project file. Select Embed in the Program window. 16 A.03 Quiz Embed the e1Aa01 program into the project by clicking the Properties button on the Program tab. Select Embed OK. View the process flow. How does the Code icon change? 17 e1Aa01.sas Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-10 Appendix A Writing and Submitting SAS® Programs Using Autocomplete The Program Editor also includes an autocomplete feature. The editor can suggest the following: SAS statements procedures macro programs macro variables functions formats librefs SAS data sets variable names 19 The autocomplete feature automatically suggests appropriate keywords. You can manually open the Autocomplete window by using the following shortcut keys: Action Open the Autocomplete window for the keyword on which the pointer is currently positioned. In a blank program, this shortcut displays a list of global statements. Keyboard Shortcut Ctrl + spacebar Open the Autocomplete window that contains a list of the SAS libraries that are available with the current server connection. Ctrl + L Open the Autocomplete window that contains a list of data sets that were created by using the DATA statement. Ctrl + D Open the Autocomplete window that contains a list of SAS functions. Ctrl + Shift + F1 Open the Autocomplete window that contains a list of macro functions. Ctrl + Shift + F2 Open the Autocomplete window that contains a list of SAS formats. Ctrl + Shift + F Open the Autocomplete window that contains a list of SAS informats. Ctrl + Shift + I Open the Autocomplete window that contains a list of statistics keywords. Ctrl + Shift + K Open the Autocomplete window that contains a list of SAS colors. Ctrl + Shift + C Open the Autocomplete window that contains a list of style attributes. Ctrl + Shift + F4 Open the Autocomplete window that contains a list of style elements. Ctrl + Shift + F3 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs Customizing the Program Editor You can customize the Program Editor by selecting Program Editor Options. 20 Rearranging Windows Stacking windows enables you to view two components in the project simultaneously. 21 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-11 A-12 Appendix A Writing and Submitting SAS® Programs Linking Items in the Process Flow Links can enable you to force a particular flow between programs and point-and-click tasks in the project. user-defined link (dashed line) automatic link (solid line) 22 Adding a SAS Program to a Project 1. Open a new project and add the products SAS data set. 2. To open an existing SAS program, select File Open Program. Navigate to the location of the course data and select e1Ad01.sas Open. A shortcut to the program is added to the project. 3. There is no indenting in this program to make it easier to read. Select Edit Format Code to improve the spacing, or you can right-click on the program and select Format Code. To modify the rules for formatting code, select Program Editor Options Indenter. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A-13 4. To execute the SAS program, select Run on the toolbar. A frequency report is generated, and four new SAS data sets, children, sports, outdoors, and clothing, are added to the project. Because children was the first created data set, it is automatically placed on a new Output Data tab. All other data sets are accessible from the drop-down list on the Output Data tab or in the process flow. 5. The original process flow currently does not show a direct connection between the e1Ad01 program and the products data set. You can manually connect these items in the process flow to visually indicate that the program references the products data set. This is not required, but is helpful for controlling the sequence of the process flow. To link icons, right-click products in the process flow and select Link products to e1Ad01 OK. Project items can also be connected by clicking and dragging from one icon to another. The dashed line indicates a manual link, and the solid lines indicate a link generated by Enterprise Guide. 6. Double-click the e1Ad01 icon in the project tree or process flow to return to the program. To add a report that lists the products in the children data set, use the PRINT procedure in the SAS program. At the end of the program, type pr. A list of keywords is provided. After PROC is highlighted, you can either press the spacebar or the Enter key to add PROC to the program. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-14 Appendix A Writing and Submitting SAS® Programs 7. Automatically, a list of procedure names is provided. To add PRINT to the program, begin by typing p. You can either use the down arrow key to select PRINT and then press the spacebar or Enter key, or you can double-click PRINT. 8. Next, a list of valid options for the PROC PRINT statement is provided. Type da and press the spacebar to select DATA=. 9. A list of data sets in the project and defined libraries is provided. Type ch and press the spacebar to add children to the program. 10. The list of valid options for the PROC PRINT statement appears again. Type la and enter a semicolon to complete the statement as follows: 11. To list specific variables, type var and press the spacebar. A list of variables in the children data set is provided. Double-click Product_Name, Product_Category, and Supplier_Name. Press the spacebar after each variable name to be prompted again with the variable list. 12. Continue to use the autocomplete feature to write the remainder of the step. 13. Highlight the PROC PRINT step in the program and select Run Run Selection. Select Yes when you are prompted to replace the results. Partial Results Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A-15 14. The program now includes three steps and creates multiple data sets and reports. To better visualize the flow of the program, return to the Program tab and select Analyze Program Analyze for Program Flow. 15. In the Analyze SAS Program window, select Begin analysis. Type Products Analysis in the Name of process flow to create field. Select Create process flow Close. If a data set is open in the Enterprise Guide session, the analysis might fail. To view and close any open data sets, select Tools View Open Data Sets. A new process flow is added to the project, and illustrates the flow of the steps in the program. To delete a process flow, right-click on the process flow in the project tree and select Delete. 16. The Program Editor also includes syntax tooltips. Double-click the e1Ad01 program in the project tree or process flow. Position the mouse pointer over any keyword in the program. A tooltip displays syntax details for that particular step or statement. Helpful links to online resources are included in the tooltip. The F1 key also displays syntax help. You can view syntax tooltips by positioning the pointer over items in the autocomplete windows. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-16 Appendix A Writing and Submitting SAS® Programs 17. Syntax help is also available when you enter SAS functions. Use the FIND function to create another data set that includes all products containing shoes as part of the name. Type shoes at the end of the DATA statement to create an additional data set. Add the following IF statement before the RUN statement in the DATA step: if find(Product_Name,"shoes","i") > 0 then output shoes; Notice how the syntax tooltips provide a description of each argument in the FIND function as you type. The FIND function returns a number that indicates the starting position of the substring shoes. If shoes does not exist in the name, the FIND function returns a zero. 18. Select Run and replace the results. Click the Output Data tab and select SHOES from the drop-down list. Partial Results (5 of 45 rows) 19. Save the modified program by returning to the Program tab and selecting Save Save As. Save the program as e1Ad01s and select Save. 20. Save the project as AppendixA. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs Exporting Code All SAS code within a project can be exported to a file that can be edited and executed in other SAS environments. Select File Export Export All Code in Project. 24 Project Log The project log can be used to maintain and export an aggregated log of all code submitted for the project. 25 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-17 A-18 Appendix A Writing and Submitting SAS® Programs Setup for the Poll 1. Open the e1Aa01.egp project. 2. Select Project Log in the Process Flow window or select View Project Log. 3. Select Turn On. 4. Return to the Process Flow window and select Run Process Flow. 5. After the results are generated, select Run Process Flow a second time. 6. Examine the project log by selecting View Project Log. 26 A.04 Poll Is the project log overwritten or appended when the project is run the second time? overwritten appended 27 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A-19 Programming Statements to Avoid Programs that run in the SAS windowing environment can also run successfully in SAS Enterprise Guide. Be aware of the following exceptions: Code that calls X commands or SYSTASK might not work unless this permission is granted by the administrator. Code that normally causes a window or prompt to appear in the SAS windowing environment (DEBUG, PROC FSLIST, AF applications) does not work in SAS Enterprise Guide. Code that terminates the SAS process with ABORT or ENDSAS calls terminates the connection between SAS Enterprise Guide and the SAS server. 29 For more information about enabling X and SYSTASK commands, go to http://blogs.sas.com/content/sasdummy/2009/11/19/using-the-x-and-systask-commands-from-sasenterprise-guide/. Exercises Level 1 1. Modifying and Running a SAS Program in a Project a. In the AppendixA project, add the e1Ae01.sas program. If another project is open, select File Open Recent Projects to quickly access the AppendixA project. If you do not have the AppendixA project, you can create a new project. b. Format the program to improve the spacing of the statements. The rules for indenting can be modified by selecting Program Editor Options Indenter. c. If necessary, modify the path in the LIBNAME statement to point to the location of the course data. d. To better understand the flow of the program, use the Analyze Program tool to generate a new process flow that outlines the steps included in the code. Name the new process flow Salary Analysis. After you examine the Salary Analysis process flow, delete it from the project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-20 Appendix A Writing and Submitting SAS® Programs e. Run the program and review the results. f. Return to the e1Ae01.sas program and add the PROC MEANS step below to calculate average salary and median salary. Open the Autocomplete window to supply keywords in the code. proc means data=CurrentEmployees mean median noprint; var Salary; class Department; output out=work.SalaryStats mean=AvgSalary Median=MedSalary; run; g. Highlight the added step and submit only the new code. Partial Results (7 of 18 rows) h. Save the modified program as EmployeeSalary.sas. i. Save the AppendixA project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.1 Writing and Submitting SAS Programs A-21 Level 2 2. Using the Autocomplete Tab with Functions, Linking Items in a Project, and Creating a Project Log a. If you completed the Level 1 exercise, use the AppendixA project. Otherwise, open the e1Ae02.egp project. b. In the DATA step of the EmployeeSalary program, add an assignment statement to create a variable named Years_Employed. Use the INT, YRDIF, and TODAY functions to calculate the number of years that elapsed between Employee_Hire_Date and today’s date. As you enter the arguments of the functions, notice the syntax tooltips that are provided. c. Highlight the DATA step and run the selection. The values of Years_Employed are different depending on the date on which you run the program. Partial Results (7 of 308 rows) d. The EmployeeSalary program uses the employee_organization SAS data set as input. To reflect this relationship, manually link the items in the process flow. e. Turn on the project log in the process flow. f. Run the entire project and examine the project log. Save the AppendixA project. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-22 Appendix A Writing and Submitting SAS® Programs A.2 Solutions Solutions to Exercises 1. Modifying and Running a SAS Program in a Project a. In the AppendixA project, add the e1Ae01.sas program. If another project is open, select File Open Recent Projects to quickly access the AppendixA project. If you do not have the AppendixA project, you can create a new project. 1) Select File Open Program and navigate to the location of the course data. 2) Select e1Ae03.sas Open. b. Format the program to improve the spacing of the statements. Select Edit Format Code or hold down the Ctrl key and press the letter i on the keyboard. The rules for indenting can be modified by selecting Program Editor Options Indenter. c. If necessary, modify the path in the LIBNAME statement to point to the location of the course data. If the path specified in quotation marks in the LIBNAME statement is not the path of the course data, then replace this path with the correct location. d. To better understand the flow of the program, use the Analyze Program tool to generate a new process flow that outlines the steps included in the code. Name the new process flow Salary Analysis. After examining the Salary Analysis process flow, delete it from the project. 1) On the Program tab, select Analyze Program Analyze Program Flow. 2) Select Begin Analysis. 3) Type Salary Analysis in the Name of process flow to create field and select Create process flow. 4) After you examine the new process flow, right-click Salary Analysis in the project tree and select Delete Yes. A shortcut to the original program (e1Ae03) is still included in the project. e. Run the program and review the results. 1) Double-click the e1Ae01 icon in the project tree or process flow. 2) Select Run from the program toolbar. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.2 Solutions A-23 f. Return to the e1Ae01.sas program and add the PROC MEANS step below to calculate average salary and median salary. Use the Autocomplete window to supply keywords in the code. proc means data=CurrentEmployees mean median noprint; var Salary; class Department; output out=work.SalaryStats mean=AvgSalary Median=MedSalary; run; g. Highlight the added step and submit only the new code. 1) Highlight the PROC MEANS step. 2) Select Run Run Selection. Click Yes to replace the results. Partial Results (7 of 18 rows) Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-24 Appendix A Writing and Submitting SAS® Programs h. Save the modified program as EmployeeSalary.sas. 1) Click the Program tab. 2) Select Save Save As from the program toolbar. 3) Navigate to the location that is specified by your instructor. 4) Name the file EmployeeSalary and select Save. i. Save the AppendixA project. 1) Click on the toolbar. 2) If the Save window appears, navigate to the location that is specified by your instructor. Type AppendixA in the File name field and select Save. 2. Using the Autocomplete Tab with Functions, Linking Items in a Project, and Creating a Project Log a. If you completed the Level 1 exercise, use the AppendixA project. Otherwise, open the e1Ae02.egp project. 1) If necessary, select File Open Project. 2) Navigate to the course data and select e1Ae02.egp Open. b. In the DATA step of the EmployeeSalary program, add an assignment statement to create a variable named Years_Employed. Use the INT, YRDIF, and TODAY functions to calculate the number of years that elapsed between Employee_Hire_Date and today’s date. As you enter the arguments of the functions, notice the syntax tooltips that are provided. 1) Double-click the EmployeeSalary program in the project tree or process flow. 2) Before the RUN statement in the DATA step, add the following statement: Years_Employed=int(yrdif(Employee_Hire_Date,today(),"act/act")); c. Highlight the DATA step and run the selection. Highlight the DATA step and select Run Run Selection. Partial Results (7 of 308 rows) d. The EmployeeSalary program uses the employee_organization SAS data set as input. To reflect this relationship, manually link the items in the process flow. 1) Click the employee_organization data set once in the process flow to select the data source. 2) Position the mouse pointer over the border of the icon until a crosshair tool appears. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.2 Solutions 3) Click and drag it to the EmployeeSalary icon. You can also right-click employee organization and select Link employee_organization to EmployeeSalary. e. Turn on the project log in the process flow. 1) Click the Project Log tab in the process flow. 2) Click the Turn On tab. 3) Click to close the project log. f. Run the entire project and examine the project log. Save the AppendixA project. 1) In the process flow, select Run Run Project. 2) Return to the process flow and select Project Log. You can expand each section to view the log for the items in the project. 3) Click on the toolbar. 4) If the Save window appears, navigate to the location that is specified by your instructor. Type AppendixA in the File name field and select Save. Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-25 A-26 Appendix A Writing and Submitting SAS® Programs Solutions to Student Activities (Polls/Quizzes) A.01 Quiz – Correct Answer Open the SAS program e1Aa01.sas in SAS Enterprise Guide and run it. 1. Use the Log Summary and the Log windows to identify any errors. 2. Right-click on the error in the Log Summary window. Navigate to the line in the program that must be corrected. 3. Correct the program, and rerun it. The data set should be named children. e1Aa01.sas 11 A.02 Quiz – Correct Answer Examine the Program and Log tabs. What differences do you observe? Enterprise Guide adds wrapper code before and after the submitted program to format the results. Keep the program open for the next quiz. 13 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A.2 Solutions A.03 Quiz – Correct Answer Embed the e1Aa01 program into the project by clicking the Properties button on the Program tab. Select Embed OK. View the process flow. How does the Code icon change? The shortcut arrow is removed. Remove the e1Aa01 program from the project by right-clicking the icon and selecting Delete. e1Aa01.sas 18 A.04 Poll – Correct Answer Is the project log overwritten or appended when the project is run the second time? overwritten appended 28 Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. A-27 A-28 Appendix A Writing and Submitting SAS® Programs Copyright © 2014, SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED.