The DO Loop
Statistical programming in SAS with an emphasis on SAS/IML programs![The direct product (Kronecker product) in SAS](https://blogs.sas.com/content/iml/files/2014/12/kronecker.png)
There are many ways to multiply scalars, vectors, and matrices, but the Kronecker product (also called the direct product) is multiplication on steroids. The Kronecker product looks scary, but it is actually simple. The Kronecker product is merely a way to pack multiples of a matrix B into a block
![Compute maximum and minimum values for rows and columns in SAS Compute minimum and maximum of rows and columns in SAS](https://blogs.sas.com/content/iml/files/2014/12/t_minmax4.png)
A common question on SAS discussion forums is how to compute the minimum and maximum values across several variables. It is easy to compute statistics across rows by using the DATA step. This article shows how to compute the minimum and maximum values for each observation (across variables) and, for
![Overview of new features in SAS/IML 13.1](https://blogs.sas.com/content/iml/files/2017/01/AdvancedAnalytics-2.png)
SAS software contains a lot of features, and each release adds more.To make sure that you do not miss new features that appear in the SAS/IML language, the word cloud on the right sidebar of my blog contains numbers that relate to SAS or SAS/IML releases. For example, you can
![The difference between RUN and CALL for SAS/IML subroutines](https://blogs.sas.com/content/iml/files/2014/11/runcall.png)
Have you ever noticed that some SAS/IML programmers use the CALL statement to call a subroutine, whereas others use the RUN statement? Have you ever wondered why the SAS/IML language has two statements that do the same thing? It turns out that the CALL statement and the RUN statement do
![An efficient way to increment a matrix diagonal](https://blogs.sas.com/content/iml/files/2014/11/matrixdiag.png)
I was recently asked about how to use the SAS/IML language to efficiently add a constant to every element of a matrix diagonal. Mathematically, the task is to form the matrix sum A + kI, where A is an n x n matrix, k is a scalar value, and I is the
![Recent additions to the SAS/IML file-sharing community](https://blogs.sas.com/content/iml/files/2017/02/AdvancedAnalytics-3.png)
It has been three months since the introduction of the SAS/IML File Exchange, so I thought I'd give a short update on recent submissions and activity. (Note: The File Exchange was merged into the SAS Community Library in 2022.) Users have submitted eight new articles. The application areas include experimental