11. Reading SAS datasets. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 242

Size: px
Start display at page:

Download "11. Reading SAS datasets. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 242"

Transcription

1 11. Reading SAS datasets 242

2 Reading a single SAS dataset DATA SAS-dataset; SET SAS-dataset; <more SAS statements>; - SAS-dataset in the DATA statement is the name (libref.filename) of the dataset to be created - SAS-dataset in the SET statement is the name (libref.filename) of the dataset to be read DATA work.subset1; SET Lib9_3.sales; IF Country="AU" AND Salary>50000; PROC PRINT DATA=subset1; 243

3 Where to specify DROP= and KEEP= op)ons You can specify DROP and KEEP in either the DATA statement or in the SET statement, depending on whether you want to drop (keep) variables of the output or input file: - If you never reference certain variables and you don t want them to appear in the new dataset, you can use a DROP= op)on in the SET statement - If you need to reference a variable in the original dataset, you can specify the variable in the DROP= or KEEP= op)on in the DATA statement DATA work.subset1 (DROP=Employee_ID Salary); SET Lib9_3.sales ; IF Country='AU'; PROC PRINT DATA=subset1; DATA work.subset1; SET Lib9_3.sales (KEEP=Employee_ID Salary); IF Country='AU'; PROC PRINT DATA=subset1; (This script will not do its job because SAS will not read Country in Lib9_3.Sales) DATA work.subset1; SET Lib9_3.sales (KEEP=Employee_ID Salary); IF Salary>50000; PROC PRINT DATA=subset1; 244

4 How SAS processes the Data step when reading from a SAS dataset 245

5 Compila)on Phase During the compilabon phase: - Syntax error are checked in each statement of the DATA step - PDV is created: - a slot is added for each variable in the input SAS dataset when the SET statement is compiled; - any variables created in the DATA step are also added to the PDV. - The descrip)on por)on of the new SAS dataset is created 246

6 Execu)on Phase: First Itera)on 247

7 Second itera)on (1) N.B. : SAS retains the variables that: - were read from the input SAS dataset in the PDV - were created by a SUM statement All the other variables (e.g. variables created in the data steps using an assignment statement) are set to missing 248

8 Second itera)on (2) 249

9 Using the BY statement with the SET statement in a DATA step DATA SAS-dataset; SET SAS-dataset; BY <DESCENDING> variable(s); - N.B.: The datasets that are listed in the set statement must be sorted by the values of the BY variable(s) PROC PRINT DATA=Lib9_3.specialsals; PROC SORT DATA=Lib9_3.specialsals OUT=salsort; BY Dept; PROC PRINT DATA=salsort; 250

10 Accumula)ng totals for groups of data How much is the total salary for each department? 251

11 How SAS processes By groups DATA deptsals (KEEP=Dept DeptSal); SET Salsort; BY Dept; - The DATA step creates two temporary variables for each by variable: - FIRST.variable : it equals 1 for the first observa)on in a by group, otherwise is 0 - LAST.variable : it equals 1 for the last observa)on in a by group, otherwise is 0 252

12 Accumula)ng totals for groups of data: First step Sezng the value of the accumula)ng variable to zero DATA deptsals (KEEP=Dept DeptSal); SET Salsort; BY Dept; IF First.Dept THEN DeptSal=0; PROC PRINT DATA=deptsals; Each )me a new group begins (First.Dept=1), DeptSal is set to zero 253

13 Accumula)ng totals for groups of data: Second Step Incremen)ng the accumula)ng variable with the SUM statement DATA deptsals (KEEP=Dept DeptSal); SET Salsort; BY Dept; IF First.Dept THEN DeptSal=0; DeptSal+Salary; PROC PRINT DATA=deptsals; 254

14 Accumula)ng totals for groups of data: Third Step Outpuzng only the last observa)on of each BY group DATA deptsals (KEEP=Dept DeptSal); SET Salsort; BY Dept; IF First.Dept THEN DeptSal=0; DeptSal+Salary; IF Last.Dept; PROC PRINT DATA=deptsals; Only when Last.Dept = 1 SAS con)nues processing ans writes the output! (implicit OUTPUT statement) 255

15 Accumula)ng totals: a more complicated example We want to create two accumula)ng variables, NumEmps and DeptSal, in which we put the number of Employees and the total salary of each department for each project PROC PRINT DATA=Lib9_3.projsals; 256

16 Remember to work on sorted data.. PROC SORT DATA=Lib9_3.projsals OUT=projsort; BY Proj Dept; PROC PRINT DATA=projsort; 257

17 Mul)ple BY-variables processing (1) DATA pdsals; SET projsort; BY Proj Dept; 258

18 (2) When you specify mul)ple BY-variables, SAS respects two rules: 1) FIRST.variable for each BY variable is set to 1 at the first occurrence of a new value for the primary BY variable 2) A value of 1 for the primary BY variable forces LAST.variable to a value of 1 for the secondary BY variable Rule 1 Rule 2 259

19 First Step DATA pdsals (DROP=Employee_ID Salary); SET projsort; BY Proj Dept; IF First.Dept THEN DO; DeptSal=0; NumEmps=0; END; Secng the value of the accumula)ng variables to zero In order to make a unit the two statement in which SAS sets the two variables to zero, we use a DO group PROC PRINT DATA=pdsals; 260

20 Second Step Incremen)ng the accumula)ng variables by means of the sum statement DATA pdsals (DROP=Employee_ID Salary); SET projsort; BY Proj Dept; IF First.Dept THEN DO; DeptSal=0; NumEmps=0; END; DeptSal+Salary; NumEmps+1; PROC PRINT DATA=pdsals; 261

21 DATA pdsals (DROP=Employee_ID Salary); SET projsort; BY Proj Dept; IF First.Dept THEN DO; DeptSal=0; NumEmps=0; END; DeptSal+Salary; NumEmps+1; IF Last.Dept; PROC PRINT DATA=pdsals; Third Step Outpuzng only the totals (that is the last observa)on for each group) 262

22 The POINT= op)on You can access an observa)ons directly, without having to process each observa)on that preceeds it: POINT=variable - Specifies a temporary numeric variable that contains the observa)on number of the observa)on to read. - You must give a value to this variable before execu)ng the SET statement The DATA step con)nues to read observa)ons un)l it reaches an end-of-file marker. If we force SAS to read only the specified observa)on(s), SAS cannot read an end-offile marker and the program causes con)nuous looping DATA subset1; obsnum=4; SET Lib9_3.Employee_addresses POINT=obsnum; This program would produce a con)nuous loop 263

23 The STOP statement STOP ; It causes SAS to stop processing the current DATA step. PROC PRINT DATA=Lib9_3.Employee_addresses; DATA subset1; obsnum=4; SET Lib9_3.Employee_addresses POINT=obsnum; STOP; This program doesn t output anything, due to the fact that the implicit OUTPUT statement has not been executed 264

24 The OUTPUT statement The DATA step writes observa)on to output by default. You can make this ac)on explicit using the OUTPUT statement: OUTPUT <SAS-dataset(s)> ; - SAS-dataset(s) names the dataset(s) to which the observa)on is wri{en. - All dataset names that are specified in the OUTPUT statement must also appear in the DATA statement. If no dataset is specified, the current observa)on is wri{en to the dataset(s) specified in the DATA stastement DATA subset1; obsnum=4; SET Lib9_3.Employee_addresses POINT=obsnum; OUTPUT; STOP; PROC PRINT DATA=subset1; 265

25 Outpuzng mul)ple datasets If you create several datasets in the DATA statement, you can choose which dataset produce I create three datasets, but I fill only the third one : DATA Usa Australia Other; SET Lib9_3.Employee_addresses; OUTPUT Other; DATA Usa Australia Other; SET Lib9_3.Employee_addresses; IF Country='AU' THEN OUTPUT Australia; ELSE IF Country = 'US' THEN OUTPUT Usa; ELSE OUTPUT Other; DATA Usa Australia Other; SET Lib9_3.Employee_addresses; SELECT (Country); WHEN ('AU') OUTPUT Australia; WHEN ('US') OUTPUT Usa; OTHERWISE OUTPUT Other; END; 266

26 END= op)on It creates a temporary variable that contains an end-of-file marker END=variable - variable : is a temporary variable which is ini)alized to 0 and it is set to 1 when the SET statement reads the last observa)on of the dataset - This variable is not added to the dataset DATA totsals (KEEP=NumEmp DeptSal); SET Lib9_3.projsals END=last; NumEmp+1; DeptSal+Salary; IF last; PROC PRINT DATA=totsals; N.B.: END= and POINT= op)ons are incompa)ble in the same SET statement 267

12. Combining SAS datasets. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 269

12. Combining SAS datasets. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 269 12. Combining SAS datasets 269 Appending datasets in different situa)ons PROC PRINT DATA=Lib9_3.emps; PROC PRINT DATA=Lib9_3.emps2008; PROC PRINT DATA=Lib9_3.emps2009; PROC PRINT DATA=Lib9_3.emps2010;

More information

Essentials of PDV: Directing the Aim to Understanding the DATA Step! Arthur Xuejun Li, City of Hope National Medical Center, Duarte, CA

Essentials of PDV: Directing the Aim to Understanding the DATA Step! Arthur Xuejun Li, City of Hope National Medical Center, Duarte, CA PharmaSUG 2013 - Paper TF17 Essentials of PDV: Directing the Aim to Understanding the DATA Step! Arthur Xuejun Li, City of Hope National Medical Center, Duarte, CA ABSTRACT Beginning programmers often

More information

SAS coding for those who like to be control

SAS coding for those who like to be control SAS coding for those who like to be control Montreal SAS Users Group 30 May 2018 Charu Shankar SAS Institute, Toronto About your presenter SAS Senior Technical Training Specialist, Charu Shankar teaches

More information

15. Processing variables with arrays. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 343

15. Processing variables with arrays. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 343 15. Processing variables with arrays 343 SAS Arrays A SAS array is a temporary grouping of SAS variables under a single name. It exists only for the dura)on of the DATA step Useful for processing several

More information

What is Search For? CS 188: Ar)ficial Intelligence. Constraint Sa)sfac)on Problems Sep 14, 2015

What is Search For? CS 188: Ar)ficial Intelligence. Constraint Sa)sfac)on Problems Sep 14, 2015 CS 188: Ar)ficial Intelligence Constraint Sa)sfac)on Problems Sep 14, 2015 What is Search For? Assump)ons about the world: a single agent, determinis)c ac)ons, fully observed state, discrete state space

More information

Chapter 6: Modifying and Combining Data Sets

Chapter 6: Modifying and Combining Data Sets Chapter 6: Modifying and Combining Data Sets The SET statement is a powerful statement in the DATA step. Its main use is to read in a previously created SAS data set which can be modified and saved as

More information

16. Reading raw data in fixed fields. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 364

16. Reading raw data in fixed fields. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 364 16. Reading raw data in fixed fields 364 Reading raw Dataset: three solu)ons You can mix all of them! Data that SAS cannot read without further informa)on 365 Reading standard data with column input: review

More information

Updating Data Using the MODIFY Statement and the KEY= Option

Updating Data Using the MODIFY Statement and the KEY= Option Updating Data Using the MODIFY Statement and the KEY= Option Denise J. Moorman and Deanna Warner Denise J. Moorman is a technical support analyst at SAS Institute. Her area of expertise is base SAS software.

More information

Execu&on Control Structures

Execu&on Control Structures Execu&on Control Structures Condi)onal Structures Itera)on Pa9erns, Part I Two- Dimensional Lists while Loop Itera)on Pa9erns, Part II One- way if statement if :

More information

CS450 - Structure of Higher Level Languages

CS450 - Structure of Higher Level Languages Spring 2018 Streams February 24, 2018 Introduction Streams are abstract sequences. They are potentially infinite we will see that their most interesting and powerful uses come in handling infinite sequences.

More information

UNIT 2B An Introduc0on to Programming (for loops) for Loop (simple version) for loop_variable in range(n): loop body

UNIT 2B An Introduc0on to Programming (for loops) for Loop (simple version) for loop_variable in range(n): loop body UNIT 2B An Introduc0on to Programming (for loops) 1 for Loop (simple version) for loop_variable in range(n): loop body The loop variable is a new variable name The loop body is one or more instruc0ons

More information

Document Databases: MongoDB

Document Databases: MongoDB NDBI040: Big Data Management and NoSQL Databases hp://www.ksi.mff.cuni.cz/~svoboda/courses/171-ndbi040/ Lecture 9 Document Databases: MongoDB Marn Svoboda svoboda@ksi.mff.cuni.cz 28. 11. 2017 Charles University

More information

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

PASS4TEST. IT Certification Guaranteed, The Easy Way!  We offer free update service for one year PASS4TEST \ http://www.pass4test.com We offer free update service for one year Exam : A00-212 Title : SAS Advanced Programming Exam for SAS 9 Vendor : SASInstitute Version : DEMO Get Latest & Valid A00-212

More information

SQL Queries. COSC 304 Introduction to Database Systems SQL. Example Relations. SQL and Relational Algebra. Example Relation Instances

SQL Queries. COSC 304 Introduction to Database Systems SQL. Example Relations. SQL and Relational Algebra. Example Relation Instances COSC 304 Introduction to Database Systems SQL Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca SQL Queries Querying with SQL is performed using a SELECT statement. The general

More information

Introduction to PROC SQL

Introduction to PROC SQL Introduction to PROC SQL Steven First, Systems Seminar Consultants, Madison, WI ABSTRACT PROC SQL is a powerful Base SAS Procedure that combines the functionality of DATA and PROC steps into a single step.

More information

COSC 304 Introduction to Database Systems SQL. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 304 Introduction to Database Systems SQL. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 304 Introduction to Database Systems SQL Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca SQL Queries Querying with SQL is performed using a SELECT statement. The general

More information

David Beam, Systems Seminar Consultants, Inc., Madison, WI

David Beam, Systems Seminar Consultants, Inc., Madison, WI Paper 150-26 INTRODUCTION TO PROC SQL David Beam, Systems Seminar Consultants, Inc., Madison, WI ABSTRACT PROC SQL is a powerful Base SAS Procedure that combines the functionality of DATA and PROC steps

More information

Understanding and Applying the Logic of the DOW-Loop

Understanding and Applying the Logic of the DOW-Loop PharmaSUG 2014 Paper BB02 Understanding and Applying the Logic of the DOW-Loop Arthur Li, City of Hope National Medical Center, Duarte, CA ABSTRACT The DOW-loop is not official terminology that one can

More information

Database Management Systems,

Database Management Systems, Database Management Systems SQL Query Language (3) 1 Topics Aggregate Functions in Queries count sum max min avg Group by queries Set Operations in SQL Queries Views 2 Aggregate Functions Tables are collections

More information

SQL- Updates, Asser0ons and Views

SQL- Updates, Asser0ons and Views SQL- Updates, Asser0ons and Views Data Defini0on, Constraints, and Schema Changes Used to CREATE, DROP, and ALTER the descrip0ons of the tables (rela0ons) of a database CREATE TABLE In SQL2, can use the

More information

Effectively Utilizing Loops and Arrays in the DATA Step

Effectively Utilizing Loops and Arrays in the DATA Step Paper 1618-2014 Effectively Utilizing Loops and Arrays in the DATA Step Arthur Li, City of Hope National Medical Center, Duarte, CA ABSTRACT The implicit loop refers to the DATA step repetitively reading

More information

Stat Wk 3. Stat 342 Notes. Week 3, Page 1 / 71

Stat Wk 3. Stat 342 Notes. Week 3, Page 1 / 71 Stat 342 - Wk 3 What is SQL Proc SQL 'Select' command and 'from' clause 'group by' clause 'order by' clause 'where' clause 'create table' command 'inner join' (as time permits) Stat 342 Notes. Week 3,

More information

Merge Processing and Alternate Table Lookup Techniques Prepared by

Merge Processing and Alternate Table Lookup Techniques Prepared by Merge Processing and Alternate Table Lookup Techniques Prepared by The syntax for data step merging is as follows: International SAS Training and Consulting This assumes that the incoming data sets are

More information

Database links: Views:

Database links: Views: Database links: Views: Allows to connect to remote databases Can be public or private Public can be used by anyone and private is available only for owner of the object. Can point to host in the tns entry

More information

1/10/16. RPC and Clocks. Tom Anderson. Last Time. Synchroniza>on RPC. Lab 1 RPC

1/10/16. RPC and Clocks. Tom Anderson. Last Time. Synchroniza>on RPC. Lab 1 RPC RPC and Clocks Tom Anderson Go Synchroniza>on RPC Lab 1 RPC Last Time 1 Topics MapReduce Fault tolerance Discussion RPC At least once At most once Exactly once Lamport Clocks Mo>va>on MapReduce Fault Tolerance

More information

2. Referencing Files and Sepng Op+ons. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming» 47

2. Referencing Files and Sepng Op+ons. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming» 47 2. Referencing Files and Sepng Op+ons GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming» 47 Defining SAS libraries To reference a permanent SAS file you: - Assign a name (libref)

More information

Agenda. Excep,ons Object oriented Python Library demo: xml rpc

Agenda. Excep,ons Object oriented Python Library demo: xml rpc Agenda Excep,ons Object oriented Python Library demo: xml rpc Resources h?p://docs.python.org/tutorial/errors.html h?p://docs.python.org/tutorial/classes.html h?p://docs.python.org/library/xmlrpclib.html

More information

What is Stata? A programming language to do sta;s;cs Strongly influenced by economists Open source, sort of. An acceptable way to manage data

What is Stata? A programming language to do sta;s;cs Strongly influenced by economists Open source, sort of. An acceptable way to manage data Introduc)on to Stata Training Workshop on the Commitment to Equity Methodology CEQ Ins;tute, Asian Development Bank, and The Ministry of Finance Dili May-June, 2017 What is Stata? A programming language

More information

UNIT V: CENTRAL PROCESSING UNIT

UNIT V: CENTRAL PROCESSING UNIT UNIT V: CENTRAL PROCESSING UNIT Agenda Basic Instruc1on Cycle & Sets Addressing Instruc1on Format Processor Organiza1on Register Organiza1on Pipeline Processors Instruc1on Pipelining Co-Processors RISC

More information

TOP 10 (OR MORE) WAYS TO OPTIMIZE YOUR SAS CODE

TOP 10 (OR MORE) WAYS TO OPTIMIZE YOUR SAS CODE TOP 10 (OR MORE) WAYS TO OPTIMIZE YOUR SAS CODE Handy Tips for the Savvy Programmer SAS PROGRAMMING BEST PRACTICES Create Readable Code Basic Coding Recommendations» Efficiently choosing data for processing»

More information

SAS - By Group Processing umanitoba.ca/centres/mchp

SAS - By Group Processing umanitoba.ca/centres/mchp SAS - By Group Processing umanitoba.ca/centres/mchp Winnipeg SAS users Group SAS By Group Processing Are you First or Last In Line Charles Burchill Manitoba Centre for Health Policy, University of Manitoba

More information

From Raw Data to Beau.ful Graph Using JSL Michael Hecht, SAS Ins.tute Inc., Cary, NC

From Raw Data to Beau.ful Graph Using JSL Michael Hecht, SAS Ins.tute Inc., Cary, NC From Raw Data to Beau.ful Graph Using JSL Michael Hecht, SAS Ins.tute Inc., Cary, NC Abstract JSL is a powerful tool for manipula3ng raw data into the form needed for easy visualiza3on in JMP. This paper

More information

BAKING OR COOKING LEARN THE DIFFERENCE BETWEEN SAS ARRAYS AND HASH OBJECTS

BAKING OR COOKING LEARN THE DIFFERENCE BETWEEN SAS ARRAYS AND HASH OBJECTS BAKING OR COOKING LEARN THE IFFERENCE BETWEEN SAS ARRAYS AN HASH OBJECTS WISCONSIN ILLINOIS SAS USERS GROUP MILWAUKEE 29 JUNE 2016 CHARU SHANKAR SAS INSTITUTE INC. Copyright 2013, SAS Institute Inc. All

More information

Common Loop Algorithms 9/21/16 42

Common Loop Algorithms 9/21/16 42 Common Loop Algorithms 9/21/16 42 Common Loop Algorithms 1. Sum and Average Value 2. Coun4ng Matches 3. Promp4ng un4l a Match Is Found 4. Maximum and Minimum 5. Comparing Adjacent Values 9/21/16 43 Sum

More information

17. Reading free-format data. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 386

17. Reading free-format data. GIORGIO RUSSOLILLO - Cours de prépara)on à la cer)fica)on SAS «Base Programming» 386 17. Reading free-format data 386 Reading free format data: The list input A raw dataset is free-format when it is not arranged in fixed fields. -> Fields are separated by a delimiter List input allows

More information

Are you Still Afraid of Using Arrays? Let s Explore their Advantages

Are you Still Afraid of Using Arrays? Let s Explore their Advantages Paper CT07 Are you Still Afraid of Using Arrays? Let s Explore their Advantages Vladyslav Khudov, Experis Clinical, Kharkiv, Ukraine ABSTRACT At first glance, arrays in SAS seem to be a complicated and

More information

General Tips for Working with Large SAS datasets and Oracle tables

General Tips for Working with Large SAS datasets and Oracle tables General Tips for Working with Large SAS datasets and Oracle tables 1) Avoid duplicating Oracle tables as SAS datasets only keep the rows and columns needed for your analysis. Use keep/drop/where directly

More information

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3 CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3 Instructor: Dan Garcia inst.eecs.berkeley.edu/~cs61c! Compu@ng in the News At a laboratory in São Paulo,

More information

Sign Up For An Inspire Northeast Wisconsin Account

Sign Up For An Inspire Northeast Wisconsin Account I m interested! Now What? Sign Up For An Inspire Northeast Signing up for Inspire Northeast Wisconsin is easy just follow these step-by-step direc

More information

PageRank Implementa.on in MapReduce. TA: Kun Li

PageRank Implementa.on in MapReduce. TA: Kun Li PageRank Implementa.on in MapReduce TA: Kun Li kli@cise.ufl.edu Hadoop version Your code will be tested under EMR AMI version 2.4.2 You can develop and test your code using Hadoop 1.0.3, which is corresponding

More information

Programming Environments

Programming Environments Programming Environments There are several ways of crea/ng a computer program Using an Integrated Development Environment (IDE) Using a text editor You should use the method you are most comfortable with.

More information

Contents. Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs

Contents. Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs SAS Data Step Contents Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs 2 Overview Introduction This section teaches you what happens "behind

More information

Shells and Processes. Bryce Boe 2012/08/08 CS32, Summer 2012 B

Shells and Processes. Bryce Boe 2012/08/08 CS32, Summer 2012 B Shells and Processes Bryce Boe 2012/08/08 CS32, Summer 2012 B Outline Opera>ng Systems and Linux Review Shells Project 1 Part 1 Overview Processes Overview for Monday (Sor>ng Presenta>ons) OS Review Opera>ng

More information

Name: Batch timing: Date: The SAS data set named WORK.SALARY contains 10 observations for each department, currently ordered by DEPARTMENT.

Name: Batch timing: Date: The SAS data set named WORK.SALARY contains 10 observations for each department, currently ordered by DEPARTMENT. Q1. The following SAS program is submitted: data work.total; set work.salary(keep = department wagerate); by department; if first.department then payroll = 0; payroll + wagerate; if last.department; The

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 8 Introduc

More information

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 5. Aykut Erdem, Erkut Erdem, Fuat Akal

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 5. Aykut Erdem, Erkut Erdem, Fuat Akal BBM 101 Introduc/on to Programming I Fall 2014, Lecture 5 Aykut Erdem, Erkut Erdem, Fuat Akal 1 Today Itera/on Control Loop Statements for, while, do- while structures break and con/nue Some simple numerical

More information

Base and Advance SAS

Base and Advance SAS Base and Advance SAS BASE SAS INTRODUCTION An Overview of the SAS System SAS Tasks Output produced by the SAS System SAS Tools (SAS Program - Data step and Proc step) A sample SAS program Exploring SAS

More information

3. Data Tables & Data Management

3. Data Tables & Data Management 3. Data Tables & Data Management In this lab, we will learn how to create and manage data tables for analysis. We work with a very simple example, so it is easy to see what the code does. In your own projects

More information

Paper PS05_05 Using SAS to Process Repeated Measures Data Terry Fain, RAND Corporation Cyndie Gareleck, RAND Corporation

Paper PS05_05 Using SAS to Process Repeated Measures Data Terry Fain, RAND Corporation Cyndie Gareleck, RAND Corporation Paper PS05_05 Using SAS to Process Repeated Measures Data Terry Fain, RAND Corporation Cyndie Gareleck, RAND Corporation ABSTRACT Data that contain multiple observations per case are called repeated measures

More information

Sta$c Single Assignment (SSA) Form

Sta$c Single Assignment (SSA) Form Sta$c Single Assignment (SSA) Form SSA form Sta$c single assignment form Intermediate representa$on of program in which every use of a variable is reached by exactly one defini$on Most programs do not

More information

Guidelines for Coding of SAS Programs Thomas J. Winn, Jr. Texas State Auditor s Office

Guidelines for Coding of SAS Programs Thomas J. Winn, Jr. Texas State Auditor s Office Guidelines for Coding of SAS Programs Thomas J. Winn, Jr. Texas State Auditor s Office Abstract This paper presents a set of proposed guidelines that could be used for writing SAS code that is clear, efficient,

More information

Checking for Duplicates Wendi L. Wright

Checking for Duplicates Wendi L. Wright Checking for Duplicates Wendi L. Wright ABSTRACT This introductory level paper demonstrates a quick way to find duplicates in a dataset (with both simple and complex keys). It discusses what to do when

More information

Create a SAS Program to create the following files from the PREC2 sas data set created in LAB2.

Create a SAS Program to create the following files from the PREC2 sas data set created in LAB2. Topics: Data step Subsetting Concatenation and Merging Reference: Little SAS Book - Chapter 5, Section 3.6 and 2.2 Online documentation Exercise I LAB EXERCISE The following is a lab exercise to give you

More information

Processing SAS Data Sets

Processing SAS Data Sets Statistical Data Analysis 1 Processing SAS Data Sets Namhyoung Kim Dept. of Applied Statistics Gachon University nhkim@gachon.ac.kr 1 Using OUT Dataset OUTPUT Statement OUTPUT

More information

MACRO NOTES DOCUMENTATION

MACRO NOTES DOCUMENTATION MACRO NOTES DOCUMENTATION 1 The NIH Image manual, appendix A provides a descrip;on of the macro language and menu by menu explana;on of the commands 2 Reference card - this comes as a macro/text file with

More information

Program Verification (Rosen, Sections 5.5)

Program Verification (Rosen, Sections 5.5) Program Verification (Rosen, Sections 5.5) TOPICS Program Correctness Preconditions & Postconditions Program Verification Assignments Composition Conditionals Loops Proofs about Programs Why study logic?

More information

: Advanced Compiler Design. 8.0 Instruc?on scheduling

: Advanced Compiler Design. 8.0 Instruc?on scheduling 6-80: Advanced Compiler Design 8.0 Instruc?on scheduling Thomas R. Gross Computer Science Department ETH Zurich, Switzerland Overview 8. Instruc?on scheduling basics 8. Scheduling for ILP processors 8.

More information

The inner workings of the datastep. By Mathieu Gaouette Videotron

The inner workings of the datastep. By Mathieu Gaouette Videotron The inner workings of the datastep By Mathieu Gaouette Videotron Plan Introduction The base The base behind the scene Control in the datastep A side by side compare with Proc SQL Introduction Most of you

More information

Con$nuous Integra$on Development Environment. Kovács Gábor

Con$nuous Integra$on Development Environment. Kovács Gábor Con$nuous Integra$on Development Environment Kovács Gábor kovacsg@tmit.bme.hu Before we start anything Select a language Set up conven$ons Select development tools Set up development environment Set up

More information

One-Step Change from Baseline Calculations

One-Step Change from Baseline Calculations Paper CC08 One-Step Change from Baseline Calculations Nancy Brucken, i3 Statprobe, Ann Arbor, MI ABSTRACT Change from baseline is a common measure of safety and/or efficacy in clinical trials. The traditional

More information

Earthquake data in geonet.org.nz

Earthquake data in geonet.org.nz Earthquake data in geonet.org.nz There is are large gaps in the 2012 and 2013 data, so let s not use it. Instead we ll use a previous year. Go to http://http://quakesearch.geonet.org.nz/ At the screen,

More information

Tackling Unique Problems Using TWO SET Statements in ONE DATA Step. Ben Cochran, The Bedford Group, Raleigh, NC

Tackling Unique Problems Using TWO SET Statements in ONE DATA Step. Ben Cochran, The Bedford Group, Raleigh, NC MWSUG 2017 - Paper BB114 Tackling Unique Problems Using TWO SET Statements in ONE DATA Step Ben Cochran, The Bedford Group, Raleigh, NC ABSTRACT This paper illustrates solving many problems by creatively

More information

Processor Architecture

Processor Architecture ECPE 170 Jeff Shafer University of the Pacific Processor Architecture 2 Lab Schedule Ac=vi=es Assignments Due Today Wednesday Apr 24 th Processor Architecture Lab 12 due by 11:59pm Wednesday Network Programming

More information

Developing MapReduce Programs

Developing MapReduce Programs Cloud Computing Developing MapReduce Programs Dell Zhang Birkbeck, University of London 2017/18 MapReduce Algorithm Design MapReduce: Recap Programmers must specify two functions: map (k, v) * Takes

More information

CSE Opera+ng System Principles

CSE Opera+ng System Principles CSE 30341 Opera+ng System Principles Lecture 2 Introduc5on Con5nued Recap Last Lecture What is an opera+ng system & kernel? What is an interrupt? CSE 30341 Opera+ng System Principles 2 1 OS - Kernel CSE

More information

Thinking Induc,vely. COS 326 David Walker Princeton University

Thinking Induc,vely. COS 326 David Walker Princeton University Thinking Induc,vely COS 326 David Walker Princeton University slides copyright 2017 David Walker permission granted to reuse these slides for non-commercial educa,onal purposes Administra,on 2 Assignment

More information

The data step allows for creation, assembly and modification of SAS data sets.

The data step allows for creation, assembly and modification of SAS data sets. The data step allows for creation, assembly and modification of SAS data sets. Sources of information include existing SAS data sets, database files, spreadsheets and other raw data files. Like a procedure,

More information

Flow Control: Branches and loops

Flow Control: Branches and loops Flow Control: Branches and loops In this context flow control refers to controlling the flow of the execution of your program that is, which instructions will get carried out and in what order. In the

More information

CSE Opera*ng System Principles

CSE Opera*ng System Principles CSE 30341 Opera*ng System Principles Overview/Introduc7on Syllabus Instructor: Chris*an Poellabauer (cpoellab@nd.edu) Course Mee*ngs TR 9:30 10:45 DeBartolo 101 TAs: Jian Yang, Josh Siva, Qiyu Zhi, Louis

More information

UNIT I Programming Language Syntax and semantics. Kainjan Sanghavi

UNIT I Programming Language Syntax and semantics. Kainjan Sanghavi UNIT I Programming Language Syntax and semantics B y Kainjan Sanghavi Contents Bird s eye view of programming language concepts Syntax Semantics Pragmatics Programming Language Concepts A programming language

More information

VHDL: Concurrent Coding vs. Sequen7al Coding. 1

VHDL: Concurrent Coding vs. Sequen7al Coding. 1 VHDL: Concurrent Coding vs. Sequen7al Coding talarico@gonzaga.edu 1 Concurrent Coding Concurrent = parallel VHDL code is inherently concurrent Concurrent statements are adequate only to code at a very

More information

Producing Summary Tables in SAS Enterprise Guide

Producing Summary Tables in SAS Enterprise Guide Producing Summary Tables in SAS Enterprise Guide Lora D. Delwiche, University of California, Davis, CA Susan J. Slaughter, Avocet Solutions, Davis, CA ABSTRACT This paper shows, step-by-step, how to use

More information

Caching and Demand- Paged Virtual Memory

Caching and Demand- Paged Virtual Memory Caching and Demand- Paged Virtual Memory Defini8ons Cache Copy of data that is faster to access than the original Hit: if cache has copy Miss: if cache does not have copy Cache block Unit of cache storage

More information

Proofs about Programs

Proofs about Programs Proofs about Programs Program Verification (Rosen, Sections 5.5) TOPICS Program Correctness Preconditions & Postconditions Program Verification Assignment Statements Conditional Statements Loops Composition

More information

If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC

If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC Paper 2417-2018 If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC ABSTRACT Reading data effectively in the DATA step requires knowing the implications

More information

Why Relational Databases? Relational databases allow for the storage and analysis of large amounts of data.

Why Relational Databases? Relational databases allow for the storage and analysis of large amounts of data. DATA 301 Introduction to Data Analytics Relational Databases Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca DATA 301: Data Analytics (2) Why Relational Databases? Relational

More information

STATION

STATION ------------------------------STATION 1------------------------------ 1. Which of the following statements displays all user-defined macro variables in the SAS log? a) %put user=; b) %put user; c) %put

More information

Ways to implement a language

Ways to implement a language Interpreters Implemen+ng PLs Most of the course is learning fundamental concepts for using PLs Syntax vs. seman+cs vs. idioms Powerful constructs like closures, first- class objects, iterators (streams),

More information

Sentence Comprehension as a Cogni1ve Process Day 2: Ge9ng started with ACT- R modeling. Shravan Vasishth & Felix Engelmann

Sentence Comprehension as a Cogni1ve Process Day 2: Ge9ng started with ACT- R modeling. Shravan Vasishth & Felix Engelmann Sentence Comprehension as a Cogni1ve Process Day 2: Ge9ng started with ACT- R modeling Shravan Vasishth & Felix Engelmann Source of these slides These slides are taken from Bill Kennedy s Sept 2011 slides

More information

Lecture 13: Abstract Data Types / Stacks

Lecture 13: Abstract Data Types / Stacks ....... \ \ \ / / / / \ \ \ \ / \ / \ \ \ V /,----' / ^ \ \.--..--. / ^ \ `--- ----` / ^ \. ` > < / /_\ \. ` / /_\ \ / /_\ \ `--' \ /. \ `----. / \ \ '--' '--' / \ / \ \ / \ / / \ \ (_ ) \ (_ ) / / \ \

More information

Subclassing, con.nued Method overriding, virtual methods, abstract classes/methods. COMP 401, Spring 2015 Lecture 9 2/19/2015

Subclassing, con.nued Method overriding, virtual methods, abstract classes/methods. COMP 401, Spring 2015 Lecture 9 2/19/2015 Subclassing, con.nued Method overriding, virtual methods, abstract classes/methods COMP 401, Spring 2015 Lecture 9 2/19/2015 Subclassing So Far A subclass inherits implementa.on details from its superclass

More information

SAS Institute Exam A SAS Advanced Programming Version: 6.0 [ Total Questions: 184 ]

SAS Institute Exam A SAS Advanced Programming Version: 6.0 [ Total Questions: 184 ] s@lm@n SAS Institute Exam A00-212 SAS Advanced Programming Version: 6.0 [ Total Questions: 184 ] Question No : 1 The report will not successfully run and will produce an error message in the log. What

More information

SAS Certification Handout #7: Ch

SAS Certification Handout #7: Ch SAS Certification Handout #7: Ch. 19-21 /************ Ch. 19 ********************/ /* Consider a mailing list example, partial from http://mlb.mlb.com/team/ 1---+----10---+----20---+ Kansas City Royals

More information

Not Just Merge - Complex Derivation Made Easy by Hash Object

Not Just Merge - Complex Derivation Made Easy by Hash Object ABSTRACT PharmaSUG 2015 - Paper BB18 Not Just Merge - Complex Derivation Made Easy by Hash Object Lu Zhang, PPD, Beijing, China Hash object is known as a data look-up technique widely used in data steps

More information

ABSTRACT INTRODUCTION RELEASE 6.06 ENVIRONMENT. I/O Engine Supervisor and the SAS Data Model. DATA Step Processor

ABSTRACT INTRODUCTION RELEASE 6.06 ENVIRONMENT. I/O Engine Supervisor and the SAS Data Model. DATA Step Processor The SAS System Supervisor - A Version 6 Update Merry G. Rabb, SAS Consulting Services nc. Donald J. Henderson, SAS Consulting Services nc. Jeffrey A. Polzin, SAS nstitute nc. ABSTRACT This tutorial updates

More information

MapReduce. Tom Anderson

MapReduce. Tom Anderson MapReduce Tom Anderson Last Time Difference between local state and knowledge about other node s local state Failures are endemic Communica?on costs ma@er Why Is DS So Hard? System design Par??oning of

More information

CS 378 Big Data Programming

CS 378 Big Data Programming CS 378 Big Data Programming Lecture 11 more on Data Organiza:on Pa;erns CS 378 - Fall 2016 Big Data Programming 1 Assignment 5 - Review Define an Avro object for user session One user session for each

More information

Makefile Brief Reference

Makefile Brief Reference Makefile Brief Reference COMP 229, 346, 444, 5201 Revision 1.1 Date: July 31, 2003 1 Contents Intro Format Examples 2 Intro Makefiles in conjunction with the make utility (man make) provide a very convenient

More information

Top 10 Ways to Optimize Your SAS Code Jeff Simpson SAS Customer Loyalty

Top 10 Ways to Optimize Your SAS Code Jeff Simpson SAS Customer Loyalty Top 10 Ways to Optimize Your SAS Code Jeff Simpson SAS Customer Loyalty Writing efficient SAS programs means balancing the constraints of TIME Writing efficient SAS programs means balancing Time and SPACE

More information

Microsoft Access Illustrated. Unit B: Building and Using Queries

Microsoft Access Illustrated. Unit B: Building and Using Queries Microsoft Access 2010- Illustrated Unit B: Building and Using Queries Objectives Use the Query Wizard Work with data in a query Use Query Design View Sort and find data (continued) Microsoft Office 2010-Illustrated

More information

CS 4604: Introduc0on to Database Management Systems. B. Aditya Prakash Lecture #17: Transac0ons 1: Intro. to ACID

CS 4604: Introduc0on to Database Management Systems. B. Aditya Prakash Lecture #17: Transac0ons 1: Intro. to ACID CS 4604: Introduc0on to Database Management Systems B. Aditya Prakash Lecture #17: Transac0ons 1: Intro. to ACID Why Transac0ons? Database systems are normally being accessed by many users or processes

More information

Patricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA

Patricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA SESUG 2015 Paper AD-35 Programming Compliance Made Easy with a Time Saving Toolbox Patricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA ABSTRACT Programmers perform validation in accordance with established

More information

Introduction to C Programming. What is a C program?

Introduction to C Programming. What is a C program? Introduction to C Programming Goals of this section Write a simple C program - Steps Write or develop code Compile Link Execute Add comments to C code 85-132 Introduction to C-Programming 2-1 What is a

More information

Transac.on Management. Transac.ons. CISC437/637, Lecture #16 Ben Cartere?e

Transac.on Management. Transac.ons. CISC437/637, Lecture #16 Ben Cartere?e Transac.on Management CISC437/637, Lecture #16 Ben Cartere?e Copyright Ben Cartere?e 1 Transac.ons A transac'on is a unit of program execu.on that accesses and possibly updates rela.ons The DBMS s view

More information

COMP9311 Week 10 Lecture. DBMS Architecture. DBMS Architecture and Implementation. Database Application Performance

COMP9311 Week 10 Lecture. DBMS Architecture. DBMS Architecture and Implementation. Database Application Performance COMP9311 Week 10 Lecture DBMS Architecture DBMS Architecture and Implementation 2/51 Aims: examine techniques used in implementation of DBMSs: query processing (QP), transaction processing (TxP) use QP

More information

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Announcements We are grading your midterms this week!

More information

CS 5614: (Big) Data Management Systems. B. Aditya Prakash Lecture #6: Transac/ons 1: Intro. to ACID

CS 5614: (Big) Data Management Systems. B. Aditya Prakash Lecture #6: Transac/ons 1: Intro. to ACID CS 5614: (Big) Data Management Systems B. Aditya Prakash Lecture #6: Transac/ons 1: Intro. to ACID Project dates Proposal due: Feb 23 Milestone due: Mar 28 Final report/posters etc: May 2 (last class)

More information

Locking SAS Data Objects

Locking SAS Data Objects 59 CHAPTER 5 Locking SAS Data Objects Introduction 59 Audience 60 About the SAS Data Hierarchy and Locking 60 The SAS Data Hierarchy 60 How SAS Data Objects Are Accessed and Used 61 Types of Locks 62 Locking

More information

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 7. Aykut Erdem, Erkut Erdem, Fuat Akal

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 7. Aykut Erdem, Erkut Erdem, Fuat Akal BBM 101 Introduc/on to Programming I Fall 2014, Lecture 7 Aykut Erdem, Erkut Erdem, Fuat Akal 1 Today Func/ons Defini4ons Invoca4on Parameter Lists Return Values Prototypes Recursion Recursion Induc4ve

More information

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia.

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia. W1005 Intro to CS and Programming in MATLAB Brief History of Compu?ng Fall 2014 Instructor: Ilia Vovsha hip://www.cs.columbia.edu/~vovsha/w1005 Computer Philosophy Computer is a (electronic digital) device

More information