EDUCATION PROFILE
Name: Peter Gounas
Location: Toronto
Company: SAS Canada
SAS® History: I am a SAS Certified Base Programmer with more than 23 years of professional experience. I have worked primarily as a consultant for SAS in the New York office, at Stanford University and Walt Disney World, among others. I’m now an instructor in the Toronto office, where I focus on the SAS Business Intelligence and SAS Marketing Automation curricula.

Partner/Family: Doterty, my partner of eight years, and I currently live in Toronto. He has many friends and family members in the GTA region, and my family is located in California and in Greece.

Pets: None right now, but I am a dog lover and enjoy tropical fish.

Sports/Hobbies: I love to play and watch tennis (go Serena and Venus!).

Favourite Foods: Just about anything, unfortunately. Also love to cook many different types of dishes.

My ideal weekend would be on the beach in the sun and a great massage! Hawaii, Barbados and Thailand all sound good to me.

If I could be anything at all (besides a SAS programmer), I would be: A symphony orchestra conductor. I majored in music performance in college but also have had some conducting experience. I really loved it and would enjoy doing some more.

When I’m not programming in SAS, I like to: Play my horn (i.e., the French horn, but it’s not really French). I’ve played professionally since high school and have performed with the Rome Festival Orchestra (Italy); the San Jose, Monterey and Santa Cruz symphonies (California); the Carpenters; Dave Brubeck; George Shearing; and many others.

One thing every SAS programmer should know: In a word: metadata, metadata, metadata. There are some great dictionary tables available through PROC SQL that contain a wealth of metadata that can be captured and used in subsequent processing. The two I would like to share are dictionary.tables (data set- or table-level metadata) and dictionary.columns (column- or variable-level metadata).

The example below creates two different macro variables. The first (&libraries) contains a unique list of all active library names. The second (&columns) contains a list of unique variable names from the SASHELP.CLASS data set. (Be careful to subset the dictionary data, however, because it can be very large depending on your currently active libraries and their contents.)

The
into :macroname separated by ‘,’ clause will actually store multiple values separated by whatever delimiter you specify. This can be very valuable in creating a list that can then be used in ‘Where’ processing or ‘In’ operator listings, or anywhere a list of values might be used.

PRINT OF THE CLASS DATASET

Obs
Age
Height
Name
Sex
Weight
1
14
69.0
Alfred
M
112.5
2
13
56.5
Alice
F
84.0
3
13
65.3
Barbara
F
98.0
4
14
62.8
Carol
F
102.5
5
14
63.5
Henry
M
102.5
6
12
57.3
James
M
83.0
7
12
59.8
Jane
F
84.5
8
15
62.5
Janet
F
112.5
9
13
62.5
Jeffrey
M
84.0
10
12
59.0
John
M
99.5
11
11
51.3
Joyce
F
50.5
12
14
64.3
Judy
F
90.0
13
12
56.3
Louise
F
77.0
14
15
66.5
Mary
F
112.0
15
16
72.0
Philip
M
150.0
16
12
64.8
Robert
M
128.0
17
15
67.0
Ronald
M
133.0
18
11
57.5
Thomas
M
85.0
19
15
66.5
William
M
112.0
SAS and all other SAS Institute Inc. product or service names are registered trademarks \or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. Other brand and product names are trademarks of their respective companies. Copyright © 2007, SAS Institute Inc. All rights reserved.