Posts Tagged ‘ Getting Started ’

An easy way to use numbers for column headers

June 29, 2015
By
An easy way to use numbers for column headers

When I am computing with SAS/IML matrices and vectors, I often want to label the columns or rows so that I can better understand the data. The labels are called headers, and the COLNAME= and ROWNAME= options in the SAS/IML PRINT statement enable you to add headers for columns and […] The post An easy way to use numbers for column headers appeared first on The DO Loop.

Read more »

Everything you wanted to know about writing SAS/IML modules

June 17, 2015
By
Everything you wanted to know about writing SAS/IML modules

One of the fundamental principles of computer programming is to break a task into smaller subtasks and to modularize the program by encapsulating each subtask into its own function. I have written many blog posts over the years about how to define and use functions in the SAS/IML language. I […] The post Everything you wanted to know about writing SAS/IML modules appeared first on The DO Loop.

Read more »

SAS/IML functions that operate on columns of a matrix

June 1, 2015
By
SAS/IML functions that operate on columns of a matrix

A SAS programmer asked for a list of SAS/IML functions that operate on the columns of an n x p matrix and return a 1 x p row vector of results. The functions that behave this way tend to compute univariate descriptive statistics such as the mean, median, standard deviation, and quantiles. The following […] The post SAS/IML functions that operate on columns of a matrix appeared first on The DO Loop.

Read more »

Five reasons to use ODS EXCLUDE to suppress SAS output

May 28, 2015
By
Five reasons to use ODS EXCLUDE to suppress SAS output

I previously wrote about the best way to suppress output from SAS procedures. Suppressing output is necessary in simulation and bootstrap analyses, and it is useful in other contexts as well. In my previous article, I wrote, "many programmers use ODS _ALL_ CLOSE as a way to suppress output, but […] The post Five reasons to use ODS EXCLUDE to suppress SAS output appeared first on The DO Loop.

Read more »

Finding observations that satisfy multiple conditions: The LOC-ELEMENT technique

May 11, 2015
By
Finding observations that satisfy multiple conditions: The LOC-ELEMENT technique

A common task in data analysis is to locate observations that satisfy multiple criteria. For example, you might want to locate all zip codes in certain counties within specified states. The SAS DATA step contains the powerful WHERE statement, which enables you to extract a subset of data that satisfy […] The post Finding observations that satisfy multiple conditions: The LOC-ELEMENT technique appeared first on The DO Loop.

Read more »

An easy way to clear your SAS titles

May 4, 2015
By
An easy way to clear your SAS titles

Did you know that if you have set multiple titles in SAS, that there is an easy way to remove them? For example, suppose that you've written the following statements, which call the TITLE statement to set three titles: title "A Great Big Papa Title"; title2 "A Medium-sized Mama Title"; […] The post An easy way to clear your SAS titles appeared first on The DO Loop.

Read more »

Sum a series in SAS

April 22, 2015
By
Sum a series in SAS

A customer asked: How do we go about summing a finite series in SAS? For example, I want to compute for various integers n ≥ 3. I want to output two columns, one for the natural numbers and one for the summation of the series. Summations arise often in statistical […] The post Sum a series in SAS appeared first on The DO Loop.

Read more »

Writing data in chunks: Does the chunk size matter?

March 9, 2015
By
Writing data in chunks: Does the chunk size matter?

I often blog about the usefulness of vectorization in the SAS/IML language. A one-sentence summary of vectorization is "execute a small number of statements that each analyze a lot of data." In general, for matrix languages (SAS/IML, MATLAB, R, ...) vectorization is more efficient than the alternative, which is to […] The post Writing data in chunks: Does the chunk size matter? appeared first on The DO Loop.

Read more »

Avoid loops, avoid the APPLY function, vectorize!

March 2, 2015
By
Avoid loops, avoid the APPLY function, vectorize!

Last week I received a message from SAS Technical Support saying that a customer's IML program was running slowly. Could I look at it to see whether it could be improved? What I discovered is a good reminder about the importance of vectorizing user-defined modules. The program in this blog […] The post Avoid loops, avoid the APPLY function, vectorize! appeared first on The DO Loop.

Read more »

Detect empty parameters that are passed to a SAS/IML module

February 2, 2015
By
Detect empty parameters that are passed to a SAS/IML module

A SAS/IML programmer asked a question on a discussion forum, which I paraphrase below: I've written a SAS/IML function that takes several arguments. Some of the arguments have default values. When the module is called, I want to compute some quantity, but I only want to compute it for the […]

Read more »


Subscribe

Email:

  Subscribe