About this blog
Rick Wicklin, PhD, is a senior researcher in computational statistics at SAS and is a principal developer of PROC IML and SAS/IML Studio. His areas of expertise include computational statistics, statistical graphics, statistical simulation, and modern methods in statistical data analysis. Rick is author of the books Statistical Programming with SAS/IML Software and Simulating Data with SAS.
Follow @RickWicklin on Twitter.
Subscribe to this blog
Tags
Bootstrap and Resampling Data Analysis Efficiency Getting Started History IMLPlus Just for Fun Matrix Computations Numerical Analysis Reading and Writing Data Sampling and Simulation SAS/IML Studio SAS Programming Statistical Graphics Statistical Programming Statistical Thinking Tips and Techniques vectorizationArchives
Ways to multiply in the SAS/IML language
For programmers who are learning the SAS/IML language, it is sometimes confusing that there are two kinds of multiplication operators, whereas in the SAS DATA step there is only scalar multiplication. This article describes the multiplication operators in the SAS/IML language and how to use them to perform common tasks [...]
Post a Comment Initializing vectors by using repetition factors
The SAS/IML language has a curious syntax that enables you to specify a “repetition factor” when you initialize a vector of literal values. Essentially, the language enables you to specify the frequency of an element. For example, suppose you want to define the following vector: proc iml; x = {1 [...]
Post a Comment Empty subscripts: How to fill rows and columns of a matrix
Suppose that you have a SAS/IML matrix and you want to set each element of a submatrix to zero (or any other value). There is a simple syntax that accomplishes this task. If you subscript a matrix and do not specify a row, it means “use all rows.” So, for [...]
Post a Comment How to access any program or data set that appears in the SAS/STAT documentation
If you are like me, you’ve experienced the following frustration. You are reading the SAS/STAT documentation, trying to understand some procedure or option, when you find an example that is very similar to what you need. “Great,” you think, “this example will help me understand how the SAS procedure works!” [...]
Post a Comment How the J function got its name
In linear algebra, the I symbol is used to denote an n x n identity matrix. The symbol J (or sometimes 1) is used to denote an n x p matrix of ones. When the SAS/IML language was implemented, the I function was defined to generate the identity matrix. The J function was defined [...]
Post a Comment Simulate discrete variables by using the "Table" distribution
I wanted to write a blog post about the “Table distribution” in SAS. The Table distribution, which is supported by the RAND and the RANDGEN function, enables you to specify the probability of selecting each of k items. Therefore you can use the Table distribution to sample, with replacement, from [...]
Post a Comment Oh, those pesky temporary variables!
The SAS/IML language secretly creates temporary variables. Most of the time programmers aren’t even aware that the language does this. However, there is one situation where if you don’t think carefully about temporary variables, your program will silently produce an error. And as every programmer knows, silent wrong numbers are [...]
Post a Comment Breaking bad programming habits. What's yours?
I like to be efficient in my SAS/IML programs, but sometimes I get into bad habits. Recently I realized that I was reshaping a bunch of SAS/IML row vectors because I wanted to write them to a SAS data set. This is completely unnecessary! The SAS/IML language will create a [...]
Post a Comment Reading big data in the SAS/IML language
A SAS/IML user on a discussion forum was trying to read data into a SAS/IML matrix, but the data was so large that it would not fit into memory. (Recall that SAS/IML matrices are kept in RAM.) After a few questions, it turned out that the user was trying to [...]
Post a Comment Getting started with the SAS/IML language: A free hands-on workshop
I am pleased to announce that this year at SAS Global Forum 2013 (San Francisco, April 27 to May 1, 2013) I am giving a free hands-on workshop (HOW) entitled “Getting Started with the SAS/IML Language.” If you are not familiar with the very popular Hands-On Workshop series at SAS [...]
Post a Comment 