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

Size: px
Start display at page:

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

Transcription

1 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 rights reserved.

2 2 About Charu Teaching Experience Computer languages English language Business communication skills SAS experience SAS programming SQL language S2 Hadoop Business Intelligence classes Hobbies Writing-SAS training blog Fitness-Yoga instructor Singer Working with children Cooking blog & catering Some fun facts 9 years at SAS Canada July 4 th Born & raised in India with sunshine 365 days/year Never dreamed I would live in Canada with cold 365 days of the year This Is my 4 th time presenting at WIILSU. I find coding & teaching creative processes like singing & cooking I like helping others. If you are looking for work, join the linkedin in group I ve created 21-day free SAS challenge Thanks LeRoy and all of you for continuing to find value in my teaching & invite me back. And my manager at SAS Canada & all the SAS folks that make this happen

3 Baking or Cooking learn the difference between SAS arrays and hash objects 1. Bake - Using Arrays 2. Cook - Using Hash Objects 3. Compare and contrast 3

4 Is this oven baked or cooked on the stovetop? cooked Copyright 2012, SAS Institute Inc. All rights reserved.

5 oven baked or cooked stovetop? cooked Copyright 2012, SAS Institute Inc. All rights reserved.

6 oven baked or cooked stovetop? baked Copyright 2012, SAS Institute Inc. All rights reserved.

7 oven baked or cooked stovetop? cooked Copyright 2012, SAS Institute Inc. All rights reserved.

8 Overview of Arrays (Review) An array is similar to a row of numbered buckets SAS puts a value in a bucket based on the bucket number. A value is retrieved from a bucket based on the bucket number. 8

9 Baking or Cooking learn the difference between SAS arrays and hash objects 1. Bake - Using Arrays 2. Cook - Using Hash Objects 3. Compare and contrast 9

10 efining Arrays (Review) An array is a temporary grouping of SAS variables that are arranged in a particular order and identified by an array name. The following tasks can be accomplished using an array: performing repetitive calculations on a group of variables creating many variables with the same attributes restructuring data performing a table lookup with one or more numeric factors An array exists only for the duration of the current ATA step. 10

11 Using One-imensional Arrays (Review) To use an array, declare the array by using an ARRAY statement. General form of the one-dimensional ARRAY statement: ARRAY array-name {number-of-elements} <$> <length> <list-of-variables> <(initial-values)>; 11

12 Objectives Load an array from a SAS data set. Use the array as a look up table to match records. Chef wants to create a food theme with an international menu for the summer You have been asked to provide food names with country origin(match country codes to country names) Country has country names, codes & food names CodeFoodesc has food name, description & country code Using country dataset as input to the array, we want to populate the new dataset by using the array as a lookup table 12

13 Business Scenario Wiilsu The dataset CodeFoodesc contains food name, description & country code partial listing of CodeFoodesc 13

14 Business Scenario To help the chef, you need to combine CodeFoodesc with the Country dataset which contains country names partial listing of Country 14

15 Using a One-imensional Array 4 data baking(keep=code country food description); array C{&num} $255 _temporary_ (&maxnum*' '); if _n_=1 then do code =1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; country=c{code}; run; 15

16 Execution Partial PV data baking(keep=code country food description); array C{&num} $255 (&maxnum*' '); if _n_=1 then do code =1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; country=c{code}; run; C1 C2 C3 C4 C C32 C33... C860 Code Country Food escription _N_

17 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; country=c{code}; run;.. C36... C860 Code Country Food escription _N_ Argentina 1...

18 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; country=c{code}; run; Argentina.. C36... C860 Code Country Food escription _N_ Argentina 1...

19 Execution fully loaded array Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; country=c{code}; run;.. C36... C860 Code Country Food escription _N_ 19 Australia Uzbekistan 860 Uzbekistan 1...

20 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 (&maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; country=c{code}; run; Argentina.. C36... C860 Code Country Food escription _N_ 20 Australia Uzbekista n. 1...

21 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; country=c{code}; run; Argentina 21.. C36... C860 Code Country Food escription Australia Uzbekista n 32 Asado Cuts of meat.. 1 _N _...

22 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; Country = C(code); run; Argentina 22.. C36... C860 Code Country Food escription Australia Uzbekista n 32 Asado Cuts of meat.. 1 _N _...

23 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; Country = C(code); run; Argentina 23.. C36... C860 Code Country Food escription Australia Uzbekista n 32 Argentina Asado Cuts of meat.. 1 _N _...

24 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; Implicit OUTPUT; C{code}=country; end; Implicit RETURN; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; Country =C(code); run; Argentina 24.. C36... C860 Code Country Food escription Australia Uzbekista n 32 Argentina Asado Cuts of meat.. 1 _N _...

25 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /* array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; Country =C(code); run; Argentina 25.. C36... C860 Code Country Food escription Australia Uzbekista n 32 Argentina Asado Cuts of meat.. 1 _N _...

26 Execution Partial PV C1 C2 C3 C4.. C32 data baking(keep=code country food description); array C{&num} $255 &maxnum*' '); if _n_=1 then do code=1 to &maxnum; set bakecook.country; C{code}=country; end; /*array retains values automatically if initialized in array statement*/ set foods.'codefooddesc$'n; Country =C(code); run; Continue until EOF. Argentina 26.. C36... C860 Code Country Food escription Australia Uzbekista n 860 Uzbekista n _N _ Plov A grain such as

27 Resulting ata proc print data=baking noobs; run; PROC PRINT Output Using One imensional Arrays Year_ Obs Employee_I Hired Salary Average Salary_if $163, $35, $127, $108, $88, $19, $87, $39, $48, $46, $36, $9, $27, $36, $-9, $26, $39, $-12, $30, $39, $-8, $27, $27, $

28 28

29 Review of Arrays Array The subscript value(s) must be numeric. One data value can be associated with the subscript value(s). An array uses less memory than other in-memory lookup techniques. The size of the array is determined at compilation time. Subscript values must be consecutive integers. An array selects values by direct access based on the subscript value. Arrays can only be used in the ATA step. 29

30 Baking or Cooking learn the difference between SAS arrays and hash objects 1. Bake - Using Arrays 2. Cook - Using Hash Objects Compare and contrast 30

31 Poll Have you used hash objects in SAS or other computer languages? Yes No 31

32 ATA Step Hash Objects The ATA step hash object has the following attributes: provides in-memory data storage and retrieval has a data component and a key component uses the key for quick data retrieval can store multiple data items per key does not require the data to be sorted is sized dynamically The hash object is a good choice for lookups using unordered data that can fit into memory. 32

33 Overview of a Hash Object (Review) A hash object is similar to rows of buckets that are identified by the value of a key. Key ata ata SAS puts value(s) in the data bucket(s) based on the value(s) in the key bucket. Value(s) are retrieved from the data bucket(s) based on the value(s) in the key bucket. 33

34 ATA Step Hash Objects The hash object resembles a table with rows and columns. The columns have the following characteristics: can be numeric or character can be loaded from hardcoded values can be loaded from a SAS data set exist for the duration of the ATA step can be output to a SAS data set 34

35 ATA Step Hash Objects The key component has the following attributes: can consist of numeric and character values maps key values to data rows must be unique before SAS 9.2 can be composite The data component has the following attributes: can contain multiple data values per key value can consist of numeric and character values ata components and key components are ATA step variables. 35

36 Using Hash Objects The ATA step hash object has these characteristics: is created with a ECLARE statement has attributes and methods is manipulated with object dot syntax An attribute is a property. A method is a function. 36

37 Objectives Load a hash object from a SAS data set. Use a hash object method to match records. Chef wants to create a food theme with an international menu for the summer You have been asked to provide food names with country origin(match country codes to country names) Country has country names, codes & food names CodeFoodesc has food name, description & country code Using country dataset as input to hash object, we want to populate the new dataset by using hash as a lookup table 37

38 Business Scenario Wiilsu The dataset CodeFoodesc contains food name, description & country code partial listing of CodeFoodesc 38

39 Business Scenario To help the chef, you need to combine CodeFoodesc with the Country dataset which contains country names partial listing of Country 39

40 Loading ata from a SAS ata Set into a hash object data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; rc=c.find(); run; 40

41 Execution data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; rc=c.find(); run; Partial PV 41 Country Food escription Code... rc... _N_. 1

42 Execution data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; rc=c.find(); run; Partial PV 42 Country Food escription Code Asado Cuts of Meat... rc... _N_. 1

43 Execution data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; rc=c.find(); run; Partial PV 43 Country Food escription Code Asado Cuts of meat rc... _N_ 0 1

44 Execution data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; rc=c.find(); run; True Partial PV 44 Country Food escription Code Asado Cuts of meat rc... _N_ 0 1

45 Execution data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; rc=c.find(); run; Partial PV 45 Country Food escription Code Argentina Asado Cuts of meat rc... _N_ 0 1

46 Execution data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); end; set foods.'codefooddesc$'n; run; C.definedata('country'); C.definedone(); call missing(country); rc=c.find(); Implicit OUTPUT; Implicit RETURN; Partial PV 46 Country Food escription Code Argentina Asado Cuts of meat rc... _N_ 0 1

47 Execution data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; rc=c.find(); run; Continue until EOF. Partial PV 47 Country Food escription Code Argentina Asado Cuts of meat rc... _N_ 0 1

48 Results title 'International food theme for summer with country origins of foods'; proc print data=cooking; run; Partial PROC PRINT Output 48 p306d02

49 49

50 Efficiency The program created the variable rc and then dropped it. How can you avoid creating the variable so that you do not have to drop it? a. Use a WHERE statement or a WHERE= data set option. b. Use a KEEP= or ROP= data set option in foods. codefooddesc$ n. c. Test the result of the FIN method in the subsetting IF statement. d. Use a KEEP or ROP statement. 50

51 Multiple Choice Poll Correct Answer The program created the variable rc and then dropped it. How can you avoid creating the variable so that you do not have to drop it? a. Use a WHERE statement or a WHERE= data set option. b. Use a KEEP= or ROP= data set option in foods. codefooddesc$ n. c. Test the result of the FIN method in the subsetting IF statement. d. Use a KEEP or ROP statement. 51

52 Not Creating rc The program created the variable rc and then dropped it. How can you avoid creating the variable so that you do not have to drop it? data cooking; rop rc; length country $255; if _n_=1 then do; dcl hash C(dataset:'bakecook.country'); C.definekey('code'); C.definedata('country'); C.definedone(); call missing(country); end; set foods.'codefooddesc$'n; If C.find() = 0; run; 52

53 53

54 Quiz How do you know the length of the character variable Country? 54

55 Quiz Correct Answer How do you know the length of the character variables Country You use PROC CONTENTS, PROC ATASETS, or the Explorer window to view the descriptor portion of orion.supplier. 55

56 56 efining PV Variables dynamically Instead of the LENGTH statement, you can use an IF-THEN statement. data cooking; rop rc; length country $255; if _N_=1 then do; if 0 then set bakecook.country (keep=code Country); declare hash C(dataset:'bakecook.country '); C.definekey('code'); C.definedata('country'); C.definedone(); end; set foods.'codefooddesc$'n; If c.find()=0; run; Because the IF condition is false during execution, the SET statement is compiled, but not executed. The PV includes all the kept variables from bakecook.country.

57 Using ATA Set Options In SAS 9.2, you can use SAS ATA set options to limit the amount of data loaded into a hash object. data mostfoods; if _N_=1 then do; if 0 then set bakecook.country (keep=code Country); declare hash C(dataset:"bakecook.country (where=(code=&ccode))"); C.definekey('code'); C.definedata('country'); C.definedone(); end; set foods.'codefooddesc$'n; If c.find()=0; run; 57

58 58 Advantages and isadvantages of Hash Objects Advantages use of character and numeric keys use of composite keys faster lookup than formats or merges/joins ability to be loaded from a SAS data set fine level of control (flexibility) isadvantages memory requirements Amt of memory your SAS session has available determines how big your hash object can be. Reducing the # of obs & restricting data items loaded into the hash object to only those that the program needs is a way to conserve memory. While it may be, it may be seem counter-intuitive, it may be more efficient to load your larger data into the hash object, esp, if it is your lookup data set. Action of reading your smaller data set sequentially and looking up information in a large hash object is likely to process more quickly than if you read your larger data set sequentially and look up info for each of its obs in a small hash object

59 Comparing Arrays and Hash Objects flexibility Array The subscript value(s) must be numeric. One data value can be associated with the subscript value(s). An array uses less memory than a hash object. The size of the array is determined at compilation time. When you define an array with the ARRAY statement you must specify the number of elements in your array. If the number of elements changes the next time you use the data step, you must update the ARRAY statement, or possibly maintain additional code like macro programs that could update this for you. Subscript values must be consecutive integers. An array selects values by direct access based on the subscript value. Arrays can only be used in the ATA step. Hash Object The keys can be character, numeric, or both. Multiple data items can be associated with the key value. A hash object uses more memory than an array. The size of the hash object is determined at execution time. SAS dynamically allocates memory as it needs it. You do not have to determine the size of your hash object even if the next time you use it, you have many more obs to load into it The keys do not have to be consecutive or sorted. A hash object uses a hash function for the lookup process. Hash objects can only be used in the ATA step. 59

60 Cool resources Value of arrays Better hashing Arrays in compile time Reading excel using xlsx engine ifferent ways of combining SAS tables Step by step explanation of SAS arrays I cut my processing time by 90% by using hash objects 60

61 Copyright 2014, SAS Institute Inc. All rights reserved. Questions and Comments 61

62 Contact Thanks for your time Charu Shankar Senior Technical Training Specialist SAS institute Inc. SAS BLOG TWITTER CharuYogaCan LINKEIN Copyright 2012, SAS Institute Inc. All rights reserved.

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

Why Hash? Glen Becker, USAA

Why Hash? Glen Becker, USAA Why Hash? Glen Becker, USAA Abstract: What can I do with the new Hash object in SAS 9? Instead of focusing on How to use this new technology, this paper answers Why would I want to? It presents the Big

More information

Hash Objects Why Bother? Barb Crowther SAS Technical Training Specialist. Copyright 2008, SAS Institute Inc. All rights reserved.

Hash Objects Why Bother? Barb Crowther SAS Technical Training Specialist. Copyright 2008, SAS Institute Inc. All rights reserved. Hash Objects Why Bother? Barb Crowther SAS Technical Training Specialist Purpose The purpose of this presentation is not to teach you how to program Hash Objects That s a two hour topic in PRG3. The purpose

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

ACHOO - THE FLU, SAS & YOU

ACHOO - THE FLU, SAS & YOU ACHOO - THE FLU, SAS & YOU CHARU SHANKAR, SAS INSTITUTE CANADA Health User Group Toronto 20 November 2015 AGENDA ACHOO - THE FLU, SAS & YOU 1. Some like it cold -Ways to fight the flu 2. Data Collection

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

USING SAS HASH OBJECTS TO CUT DOWN PROCESSING TIME Girish Narayandas, Optum, Eden Prairie, MN

USING SAS HASH OBJECTS TO CUT DOWN PROCESSING TIME Girish Narayandas, Optum, Eden Prairie, MN Paper RF-12-2014 USING SAS HASH OBJECTS TO CUT DOWN PROCESSING TIME Girish Narayandas, Optum, Eden Prairie, MN ABSTRACT Hash tables are in existence since SAS 9 version and are part of data step programming.

More information

A Long-Time SAS Programmer Learns New Tricks. DASUG Presentation by Lisa Horwitz, October 20, 2017

A Long-Time SAS Programmer Learns New Tricks. DASUG Presentation by Lisa Horwitz, October 20, 2017 A Long-Time SAS Programmer Learns New Tricks DASUG Presentation by Lisa Horwitz, October 20, 2017 Presenter Lisa Horwitz, SAS Lisa Horwitz is Partner Program Manager in the Global Alliances and Channels

More information

Conditional Processing in the SAS Software by Example

Conditional Processing in the SAS Software by Example Conditional Processing in the SAS Software by Example Charu Shankar, SAS Institute Canada, Toronto, Canada Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, California Abstract Conditional

More information

SAS (Statistical Analysis Software/System)

SAS (Statistical Analysis Software/System) SAS (Statistical Analysis Software/System) SAS Analytics:- Class Room: Training Fee & Duration : 23K & 3 Months Online: Training Fee & Duration : 25K & 3 Months Learning SAS: Getting Started with SAS Basic

More information

USING SAS* ARRAYS. * Performing repetitive calculations on a large number of variables, such as scaling by 10;

USING SAS* ARRAYS. * Performing repetitive calculations on a large number of variables, such as scaling by 10; USING SAS* ARRAYS Eric Webster, Bradford Exchange USA Ltd. WHAT ARE ARRAYS? Arrays are a way of referring to a group of variables in one observation by a single name. Arrays are useful for a variety of

More information

Why choose between SAS Data Step and PROC SQL when you can have both?

Why choose between SAS Data Step and PROC SQL when you can have both? Paper QT-09 Why choose between SAS Data Step and PROC SQL when you can have both? Charu Shankar, SAS Canada ABSTRACT As a SAS coder, you've often wondered what the SQL buzz is about. Or vice versa you

More information

DO Loop Processing. DO Loop Processing. Objectives. Repetitive Coding. DO Loop Processing

DO Loop Processing. DO Loop Processing. Objectives. Repetitive Coding. DO Loop Processing Array Processing and Reshaping ata 7.1 O Loop Processing 7.2 SAS Array Processing 7.3 Using SAS Arrays 7.4 Minitab STACK and UNSTACK 7.5 Creating a Sample ata Set in SAS O Loop Processing 1 Objectives

More information

SAS (Statistical Analysis Software/System)

SAS (Statistical Analysis Software/System) SAS (Statistical Analysis Software/System) Clinical SAS:- Class Room: Training Fee & Duration : 23K & 3 Months Online: Training Fee & Duration : 25K & 3 Months Learning SAS: Getting Started with SAS Basic

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

Blended Learning Outline: Cloudera Data Analyst Training (171219a)

Blended Learning Outline: Cloudera Data Analyst Training (171219a) Blended Learning Outline: Cloudera Data Analyst Training (171219a) Cloudera Univeristy s data analyst training course will teach you to apply traditional data analytics and business intelligence skills

More information

Hash Objects for Everyone

Hash Objects for Everyone SESUG 2015 Paper BB-83 Hash Objects for Everyone Jack Hall, OptumInsight ABSTRACT The introduction of Hash Objects into the SAS toolbag gives programmers a powerful way to improve performance, especially

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

WHAT S NEW IN FOUNDATION SAS FOR 9.4

WHAT S NEW IN FOUNDATION SAS FOR 9.4 WHAT S NEW IN FOUNDATION SAS FOR 9.4 SASKATOON SAS USERS GROUP SASKATOON, SASKATCHEWAN 12 MARCH 2014 CHARU SHANKAR SAS INSTITUTE INC. SAS 9.4 CORE THEMES Enable Simplify Innovate Deployment Choices Provide

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

INTRODUCTION TO PROC SQL JEFF SIMPSON SYSTEMS ENGINEER

INTRODUCTION TO PROC SQL JEFF SIMPSON SYSTEMS ENGINEER INTRODUCTION TO PROC SQL JEFF SIMPSON SYSTEMS ENGINEER THE SQL PROCEDURE The SQL procedure: enables the use of SQL in SAS is part of Base SAS software follows American National Standards Institute (ANSI)

More information

AVL 4 4 PDV DECLARE 7 _NEW_

AVL 4 4 PDV DECLARE 7 _NEW_ Glossary Program Control... 2 SAS Variable... 2 Program Data Vector (PDV)... 2 SAS Expression... 2 Data Type... 3 Scalar... 3 Non-Scalar... 3 Big O Notation... 3 Hash Table... 3 Hash Algorithm... 4 Hash

More information

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS TO SAS NEED FOR SAS WHO USES SAS WHAT IS SAS? OVERVIEW OF BASE SAS SOFTWARE DATA MANAGEMENT FACILITY STRUCTURE OF SAS DATASET SAS PROGRAM PROGRAMMING LANGUAGE ELEMENTS OF THE SAS LANGUAGE RULES FOR SAS

More information

SCL Arrays. Introduction. Declaring Arrays CHAPTER 4

SCL Arrays. Introduction. Declaring Arrays CHAPTER 4 37 CHAPTER 4 SCL Arrays Introduction 37 Declaring Arrays 37 Referencing Array Elements 38 Grouping Variables That Have Sequential Names 39 Initializing The Elements of A Static Array 39 Assigning the Same

More information

C++ Programming. Arrays and Vectors. Chapter 6. Objectives. Chiou. This chapter introduces the important topic of data structures collections

C++ Programming. Arrays and Vectors. Chapter 6. Objectives. Chiou. This chapter introduces the important topic of data structures collections C++ Programming Chapter 6 Arrays and Vectors Yih-Peng Chiou Room 617, BL Building (02) 3366-3603 3603 ypchiou@cc.ee.ntu.edu.tw Photonic Modeling and Design Lab. Graduate Institute of Photonics and Optoelectronics

More information

Product Page: https://digitalrevolver.com/product/automating-administration-with-windows-powershell/

Product Page: https://digitalrevolver.com/product/automating-administration-with-windows-powershell/ Automating Administration with Windows PowerShell Course Code: Duration: 5 Days Product Page: https://digitalrevolver.com/product/automating-administration-with-windows-powershell/ This course provides

More information

PDA Database Programming in PL/SQL (Oracle PL/SQL Developer Certified Associate Certification Course)

PDA Database Programming in PL/SQL (Oracle PL/SQL Developer Certified Associate Certification Course) PDA Database Programming in PL/SQL (Oracle PL/SQL Developer Certified Associate Certification Course) IT Professional Training Table of Contents Introduction... 3 SQL:... 3 PL/SQL:... 3 Class Schedule...

More information

Simple Rules to Remember When Working with Indexes

Simple Rules to Remember When Working with Indexes Simple Rules to Remember When Working with Indexes Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, CA Abstract SAS users are always interested in learning techniques related to improving

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

: 10961C: Automating Administration With Windows PowerShell

: 10961C: Automating Administration With Windows PowerShell Module Title Duration : 10961C: Automating Administration With Windows PowerShell : 5 days About this course This course provides students with the fundamental knowledge and skills to use Windows PowerShell

More information

SAS Online Training: Course contents: Agenda:

SAS Online Training: Course contents: Agenda: SAS Online Training: Course contents: Agenda: (1) Base SAS (6) Clinical SAS Online Training with Real time Projects (2) Advance SAS (7) Financial SAS Training Real time Projects (3) SQL (8) CV preparation

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

Automating Administration with Windows PowerShell

Automating Administration with Windows PowerShell Automating Administration with Windows PowerShell Course 10961C - Five Days - Instructor-led - Hands on Introduction This five-day, instructor-led course provides students with the fundamental knowledge

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

Demystifying PROC SQL Join Algorithms

Demystifying PROC SQL Join Algorithms Demystifying PROC SQL Join Algorithms Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, California ABSTRACT When it comes to performing PROC SQL joins, users supply the names of the tables

More information

INVESTIGATE YOUR DATA 4 POWERFUL SAS LANGUAGES

INVESTIGATE YOUR DATA 4 POWERFUL SAS LANGUAGES INVESTIGATE YOUR DATA 4 POWERFUL SAS LANGUAGES Vancouver SAS Users Group Vancouver, British Columbia 26 November 2014 Charu Shankar Technical Training Specialist SAS Institute Inc. Canada SITUATION Crime

More information

Big Data Executive Program

Big Data Executive Program Big Data Executive Program Big Data Executive Program Business Visualization for Big Data (BV) SAS Visual Analytics help people see things that were not obvious to them before. Even when data volumes are

More information

CHAPTER 7 Using Other SAS Software Products

CHAPTER 7 Using Other SAS Software Products 77 CHAPTER 7 Using Other SAS Software Products Introduction 77 Using SAS DATA Step Features in SCL 78 Statements 78 Functions 79 Variables 79 Numeric Variables 79 Character Variables 79 Expressions 80

More information

Paper William E Benjamin Jr, Owl Computer Consultancy, LLC

Paper William E Benjamin Jr, Owl Computer Consultancy, LLC Paper 025-2009 So, You ve Got Data Enterprise Wide (SAS, ACCESS, EXCEL, MySQL, and Others); Well, Let SAS Enterprise Guide Software Point-n-Click Your Way to Using It William E Benjamin Jr, Owl Computer

More information

Hello World! Getting Started with the SAS DS2 Language

Hello World! Getting Started with the SAS DS2 Language ABSTRACT SESUG Paper HOW190-2017 Hello World! Getting Started with the SAS DS2 Language Tricia Aanderud and Jonathan Boase, Zencos Consulting DS2 is an object-oriented programming language that is used

More information

Fundamentals of Programming Session 12

Fundamentals of Programming Session 12 Fundamentals of Programming Session 12 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2014 These slides have been created using Deitel s slides Sharif University of Technology Outlines

More information

SAS CURRICULUM. BASE SAS Introduction

SAS CURRICULUM. BASE SAS Introduction SAS CURRICULUM BASE SAS Introduction Data Warehousing Concepts What is a Data Warehouse? What is a Data Mart? What is the difference between Relational Databases and the Data in Data Warehouse (OLTP versus

More information

EXCELLING WITH ANALYSIS AND VISUALIZATION

EXCELLING WITH ANALYSIS AND VISUALIZATION EXCELLING WITH ANALYSIS AND VISUALIZATION A PRACTICAL GUIDE FOR DEALING WITH DATA Prepared by Ann K. Emery July 2016 Ann K. Emery 1 Welcome Hello there! In July 2016, I led two workshops Excel Basics for

More information

APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software. Each of these steps can be executed independently.

APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software. Each of these steps can be executed independently. 255 APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software Introduction 255 Generating a QMF Export Procedure 255 Exporting Queries from QMF 257 Importing QMF Queries into Query and Reporting 257 Alternate

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

Overview. : Cloudera Data Analyst Training. Course Outline :: Cloudera Data Analyst Training::

Overview. : Cloudera Data Analyst Training. Course Outline :: Cloudera Data Analyst Training:: Module Title Duration : Cloudera Data Analyst Training : 4 days Overview Take your knowledge to the next level Cloudera University s four-day data analyst training course will teach you to apply traditional

More information

Workbooks (File) and Worksheet Handling

Workbooks (File) and Worksheet Handling Workbooks (File) and Worksheet Handling Excel Limitation Excel shortcut use and benefits Excel setting and custom list creation Excel Template and File location system Advanced Paste Special Calculation

More information

Management Information Systems Review Questions. Chapter 6 Foundations of Business Intelligence: Databases and Information Management

Management Information Systems Review Questions. Chapter 6 Foundations of Business Intelligence: Databases and Information Management Management Information Systems Review Questions Chapter 6 Foundations of Business Intelligence: Databases and Information Management 1) The traditional file environment does not typically have a problem

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

Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays)

Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays) Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays) In this lecture, you will: Learn about arrays Explore how to declare and manipulate data into arrays Understand the meaning of

More information

The Building Blocks of SAS Datasets. (Set, Merge, and Update) Andrew T. Kuligowski FCCI Insurance Group

The Building Blocks of SAS Datasets. (Set, Merge, and Update) Andrew T. Kuligowski FCCI Insurance Group The Building Blocks of SAS Datasets S-M-U (Set, Merge, and Update) Andrew T. Kuligowski FCCI Insurance Group S-M-U What is S M U? 2 S-M-U What is S M U? Shmoo? 3 S-M-U What is S M U? Southern Methodist

More information

What you learned so far. Loops & Arrays efficiency for statements while statements. Assignment Plan. Required Reading. Objective 2/3/2018

What you learned so far. Loops & Arrays efficiency for statements while statements. Assignment Plan. Required Reading. Objective 2/3/2018 Loops & Arrays efficiency for statements while statements Hye-Chung Kum Population Informatics Research Group http://pinformatics.org/ License: Data Science in the Health Domain by Hye-Chung Kum is licensed

More information

How to Incorporate Old SAS Data into a New DATA Step, or What is S-M-U?

How to Incorporate Old SAS Data into a New DATA Step, or What is S-M-U? Paper 54-25 How to Incorporate Old SAS Data into a New DATA Step, or What is S-M-U? Andrew T. Kuligowski Nielsen Media Research Abstract / Introduction S-M-U. Some people will see these three letters and

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

SAS (Statistical Analysis Software/System)

SAS (Statistical Analysis Software/System) SAS (Statistical Analysis Software/System) SAS Adv. Analytics or Predictive Modelling:- Class Room: Training Fee & Duration : 30K & 3 Months Online Training Fee & Duration : 33K & 3 Months Learning SAS:

More information

Ten Great Reasons to Learn SAS Software's SQL Procedure

Ten Great Reasons to Learn SAS Software's SQL Procedure Ten Great Reasons to Learn SAS Software's SQL Procedure Kirk Paul Lafler, Software Intelligence Corporation ABSTRACT The SQL Procedure has so many great features for both end-users and programmers. It's

More information

SAS 9 Programming Enhancements Marje Fecht, Prowerk Consulting Ltd Mississauga, Ontario, Canada

SAS 9 Programming Enhancements Marje Fecht, Prowerk Consulting Ltd Mississauga, Ontario, Canada SAS 9 Programming Enhancements Marje Fecht, Prowerk Consulting Ltd Mississauga, Ontario, Canada ABSTRACT Performance improvements are the well-publicized enhancement to SAS 9, but what else has changed

More information

Know Thy Data : Techniques for Data Exploration

Know Thy Data : Techniques for Data Exploration Know Thy Data : Techniques for Data Exploration Montreal SAS Users Group Wednesday, 29 May 2018 13:50-14:30 PM Andrew T. Kuligowski, Charu Shankar AGENDA Part 1- Easy Ways to know your data Part 2 - Powerful

More information

10961C: Automating Administration with Windows PowerShell

10961C: Automating Administration with Windows PowerShell 10961C: Automating Administration with Windows Course Details Course Code: Duration: Notes: 10961C 5 days This course syllabus should be used to determine whether the course is appropriate for the students,

More information

A Robelle Tutorial. Hans Hendriks, August 1996

A Robelle Tutorial. Hans Hendriks, August 1996 Speeding Up QUIZ with Suprtool A Robelle Tutorial Hans Hendriks, August 1996 Copyright 1996, Robelle Solutions Technology Inc. 1 QUIZ from Cognos is a fine report writer. Suprtool is an excellent performance

More information

Dean s Level User: Instructions

Dean s Level User: Instructions Dean s Level User: Instructions *Please note: some information is blurred out for privacy To log in, please visit summer-sessions.ucdavis.edu and log in as an administrative user by clicking the link at

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

Contents. Generating data with DO loops Processing variables with arrays

Contents. Generating data with DO loops Processing variables with arrays Do-to & Array Contents Generating data with DO loops Processing variables with arrays 2 Generating Data with DO Loops Contents Introduction Constructing DO loops Do loop execution Counting do loop iterations

More information

MySQL for Beginners Ed 3

MySQL for Beginners Ed 3 MySQL for Beginners Ed 3 Duration: 4 Days What you will learn The MySQL for Beginners course helps you learn about the world's most popular open source database. Expert Oracle University instructors will

More information

Comparison of different ways using table lookups on huge tables

Comparison of different ways using table lookups on huge tables PhUSE 007 Paper CS0 Comparison of different ways using table lookups on huge tables Ralf Minkenberg, Boehringer Ingelheim Pharma GmbH & Co. KG, Ingelheim, Germany ABSTRACT In many application areas the

More information

Midterm spring. CSC228H University of Toronto

Midterm spring. CSC228H University of Toronto Midterm 2002 - spring CSC228H University of Toronto Duration 50 minutes Aids Allowed: none. No calculators. Student Number: Last Name: First Name: Instructor: TA: Do not turn this page until you have received

More information

C & Data Structures syllabus

C & Data Structures syllabus syllabus Overview: C language which is considered the mother of all languages, is and will be the most sought after programming language for any beginner to jump start his career in software development.

More information

Getting the Most from your Microsoft Excel

Getting the Most from your Microsoft Excel Getting the Most from your Microsoft Excel Anne Del Pizzo PATHS, LLC What we will cover What s new in 2007/2010 Conditional formatting Sparklines Pivot Table Slicers Functions Macros Pivot Tables 1 What

More information

"Charting the Course... MOC C: Automating Administration with Windows PowerShell. Course Summary

Charting the Course... MOC C: Automating Administration with Windows PowerShell. Course Summary Course Summary Description This course provides students with the fundamental knowledge and skills to use Windows PowerShell for administering and automating administration of Windows servers. This course

More information

RWI not REI a Robust report writing tool for your toughest mountaineering challenges.

RWI not REI a Robust report writing tool for your toughest mountaineering challenges. Paper SAS2105 RWI not REI a Robust report writing tool for your toughest mountaineering challenges. Robert T. Durie SAS Institute ABSTRACT The degree of customization required for different kinds of reports

More information

SAS Business Rules Manager 1.2

SAS Business Rules Manager 1.2 SAS Business Rules Manager 1.2 User s Guide Second Edition SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2012. SAS Business Rules Manager 1.2. Cary,

More information

Using a hash object to seed initial conditions

Using a hash object to seed initial conditions Using a hash object to seed initial conditions CHUCK ANDERSON UFA LLC ANDERSON@UFANET.COM Background Certain characteristics of dynamic models often emerge when underlying model variables are near equilibrium

More information

JCL JOB CONTROL LANGUAGE

JCL JOB CONTROL LANGUAGE Mainframe Concepts:- What is Mainframe Difference between Open source Applications and Mainframe Application Where do we use Mainframe Applications Operating System information Resource Access Control

More information

Modern Database Systems Lecture 1

Modern Database Systems Lecture 1 Modern Database Systems Lecture 1 Aristides Gionis Michael Mathioudakis T.A.: Orestis Kostakis Spring 2016 logistics assignment will be up by Monday (you will receive email) due Feb 12 th if you re not

More information

Paper Haven't I Seen You Before? An Application of DATA Step HASH for Efficient Complex Event Associations. John Schmitz, Luminare Data LLC

Paper Haven't I Seen You Before? An Application of DATA Step HASH for Efficient Complex Event Associations. John Schmitz, Luminare Data LLC Paper 1331-2017 Haven't I Seen You Before? An Application of DATA Step HASH for Efficient Complex Event Associations ABSTRACT John Schmitz, Luminare Data LLC Data processing can sometimes require complex

More information

The SERVER Procedure. Introduction. Syntax CHAPTER 8

The SERVER Procedure. Introduction. Syntax CHAPTER 8 95 CHAPTER 8 The SERVER Procedure Introduction 95 Syntax 95 Syntax Descriptions 96 Examples 101 ALLOCATE SASFILE Command 101 Syntax 101 Introduction You invoke the SERVER procedure to start a SAS/SHARE

More information

SYSTEM 2000 Essentials

SYSTEM 2000 Essentials 7 CHAPTER 2 SYSTEM 2000 Essentials Introduction 7 SYSTEM 2000 Software 8 SYSTEM 2000 Databases 8 Database Name 9 Labeling Data 9 Grouping Data 10 Establishing Relationships between Schema Records 10 Logical

More information

PLD Semester Exam Study Guide Dec. 2018

PLD Semester Exam Study Guide Dec. 2018 Covers material from Chapters 1-8. Semester Exam will be built from these questions and answers, though they will be re-ordered and re-numbered and possibly worded slightly differently than on this study

More information

Choosing the Right Technique to Merge Large Data Sets Efficiently Qingfeng Liang, Community Care Behavioral Health Organization, Pittsburgh, PA

Choosing the Right Technique to Merge Large Data Sets Efficiently Qingfeng Liang, Community Care Behavioral Health Organization, Pittsburgh, PA Choosing the Right Technique to Merge Large Data Sets Efficiently Qingfeng Liang, Community Care Behavioral Health Organization, Pittsburgh, PA ABSTRACT This paper outlines different SAS merging techniques

More information

Overview of HASH Objects Swarnalatha Gaddam, Cytel Inc. Hyderabad, India

Overview of HASH Objects Swarnalatha Gaddam, Cytel Inc. Hyderabad, India PhUSE 2014 Paper CS04 Overview of HASH Objects Swarnalatha Gaddam, Cytel Inc. Hyderabad, India Abstract: This topic is intended to provide more exposure to beginner or experienced SAS programmers who are

More information

Netezza Basics Class Outline

Netezza Basics Class Outline Netezza Basics Class Outline CoffingDW education has been customized for every customer for the past 20 years. Our classes can be taught either on site or remotely via the internet. Education Contact:

More information

VBA Collections A Group of Similar Objects that Share Common Properties, Methods and

VBA Collections A Group of Similar Objects that Share Common Properties, Methods and VBA AND MACROS VBA is a major division of the stand-alone Visual Basic programming language. It is integrated into Microsoft Office applications. It is the macro language of Microsoft Office Suite. Previously

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

Corporate Training Centre (306)

Corporate Training Centre   (306) Corporate Training Centre www.sbccollege.ca/corporate (306)244-6340 corporate@sbccollege.ca Automating Administration with Windows PowerShell: 10961C 5 Day Training Program November 5-9, 2018 Cost: $2,700.00

More information

MySQL for Developers Ed 3

MySQL for Developers Ed 3 Oracle University Contact Us: 0845 777 7711 MySQL for Developers Ed 3 Duration: 5 Days What you will learn This MySQL for Developers training teaches developers how to plan, design and implement applications

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

20762B: DEVELOPING SQL DATABASES

20762B: DEVELOPING SQL DATABASES ABOUT THIS COURSE This five day instructor-led course provides students with the knowledge and skills to develop a Microsoft SQL Server 2016 database. The course focuses on teaching individuals how to

More information

COURSE OUTCOMES OF M.Sc(IT)

COURSE OUTCOMES OF M.Sc(IT) COURSE OUTCOMES OF M.Sc(IT) Sr. No Subject Code Subject Name Sem-I CO Status Course Outcomes 1. A304101 PROGRAMMING USING C 2. A304102 FUNDAMENTALS OF COMPUTER & INFORMATION TECHNOLOGIES CO1 CO2 Understands

More information

Hadoop Online Training

Hadoop Online Training Hadoop Online Training IQ training facility offers Hadoop Online Training. Our Hadoop trainers come with vast work experience and teaching skills. Our Hadoop training online is regarded as the one of the

More information

Contents. About This Book...1

Contents. About This Book...1 Contents About This Book...1 Chapter 1: Basic Concepts...5 Overview...6 SAS Programs...7 SAS Libraries...13 Referencing SAS Files...15 SAS Data Sets...18 Variable Attributes...21 Summary...26 Practice...28

More information

Table Lookups: From IF-THEN to Key-Indexing

Table Lookups: From IF-THEN to Key-Indexing Table Lookups: From IF-THEN to Key-Indexing Arthur L. Carpenter, California Occidental Consultants ABSTRACT One of the more commonly needed operations within SAS programming is to determine the value of

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

Q1 Q2 Q3 Q4 Q5 Total 1 * 7 1 * 5 20 * * Final marks Marks First Question

Q1 Q2 Q3 Q4 Q5 Total 1 * 7 1 * 5 20 * * Final marks Marks First Question Page 1 of 6 Template no.: A Course Name: Computer Programming1 Course ID: Exam Duration: 2 Hours Exam Time: Exam Date: Final Exam 1'st Semester Student no. in the list: Exam pages: Student's Name: Student

More information

Data on External Storage

Data on External Storage Advanced Topics in DBMS Ch-1: Overview of Storage and Indexing By Syed khutubddin Ahmed Assistant Professor Dept. of MCA Reva Institute of Technology & mgmt. Data on External Storage Prg1 Prg2 Prg3 DBMS

More information

INSTITUTO SUPERIOR TÉCNICO Administração e optimização de Bases de Dados

INSTITUTO SUPERIOR TÉCNICO Administração e optimização de Bases de Dados -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e optimização de Bases de Dados Exam 1 16 June 2014

More information

Arrays: Higher Dimensional Arrays. CS0007: Introduction to Computer Programming

Arrays: Higher Dimensional Arrays. CS0007: Introduction to Computer Programming Arrays: Higher Dimensional Arrays CS0007: Introduction to Computer Programming Review If the == operator has two array variable operands, what is being compared? The reference variables held in the variables.

More information

High Institute of Computer Science & Information Technology Term : 1 st. El-Shorouk Academy Acad. Year : 2013 / Year : 2 nd

High Institute of Computer Science & Information Technology Term : 1 st. El-Shorouk Academy Acad. Year : 2013 / Year : 2 nd El-Shorouk Academy Acad. Year : 2013 / 2014 High Institute of Computer Science & Information Technology Term : 1 st Year : 2 nd Computer Science Department Object Oriented Programming Section (1) Arrays

More information

Macros I Use Every Day (And You Can, Too!)

Macros I Use Every Day (And You Can, Too!) Paper 2500-2018 Macros I Use Every Day (And You Can, Too!) Joe DeShon ABSTRACT SAS macros are a powerful tool which can be used in all stages of SAS program development. Like most programmers, I have collected

More information

DATA Step in SAS Viya : Essential New Features

DATA Step in SAS Viya : Essential New Features Paper SAS118-2017 DATA Step in SAS Viya : Essential New Features Jason Secosky, SAS Institute Inc., Cary, NC ABSTRACT The is the familiar and powerful data processing language in SAS and now SAS Viya.

More information

HASH Beyond Lookups Your Code Will Never Be the Same!

HASH Beyond Lookups Your Code Will Never Be the Same! ABSTRACT SESUG Paper 68-2017 HASH Beyond Lookups Your Code Will Never Be the Same! Elizabeth Axelrod, Abt Associates Inc. If you ve ever used the hash object for table lookups, you re probably already

More information