SAS/IML^{®}
SAS/IML 15.1
SAS/IML 15.1 supports several new statements and functions:
 The CONTINUE statement stops the processing of the current iteration of a DO loop and resumes processing at the next iteration of the DO loop.
 The new digital filtering functions enable you to design digital filters and apply those filters to signals. Many of the digital filtering functions start with the "DF" prefix. The new function and subroutines are CCEPSTRUM, DFCONV, DFDESIGN, DFFILT, DFFREQZ, DFFREQZZPK, DFMEDFILT, DFORDER, DFSOSFILT, DFSOSFREQZ, DFSOSFREQZZPK, ICCEPSTRUM, and RCEPSTRUM.
 The experimental KPCATRAIN subroutine computes a kernel principal component (kPCA) analysis from training data. The experimental KCPASCORE function uses the kPCA model to score new data.
 The FEVAL function enables you to evaluate a function indirectly by specifying the name of the function and its arguments.
 The LEAVE statement exits the current DO loop and resumes processing at the statement that follows the DO loop.
 The MODULESTACK function returns the names of all modules in the module call stack.
 The SPECTROGRAM subroutine displays a spectrogram of a shorttime Fourier transform of a time series signal.
 The TABLESORT subroutine sorts a table by one or more columns.
What's New in SAS/IML Studio 15.1
SAS/IML Studio 15.1 supports the following new features:
 Formats and informats that have been added since SAS 9.2.
 New statements for DO loops. The LEAVE and CONTINUE statements enable you to control when a DO loop terminates or proceeds to the next iteration, respectively.
 New syntax for the FROM keyword of the CREATE and APPEND statements. You can now specify multiple matrices on those statements.
Topics
Videos
Air date: June 12, 2018 
Air date: June 12, 2018 
Air date: June 14, 2017 
Air date: July 27, 2016 
Air date: August 17, 2015 
Air date: September 5, 2014 
Air date: February 25, 2014 
Air date: October 12, 2011 
Air date: August 18, 2011 
Air date: November 19, 2009 
Technical Papers

More Than Matrices: SAS/IML Software Supports New Data Structures
Wicklin, Rick; SAS Institute, 2017This paper describes new data structures and shows how you can use them to emulate other structures such as stacks, associative arrays, and trees.

Writing Packages: A New Way to Distribute and Use SAS/IML Programs
Wicklin, Rick; SAS Institute, 2016This paper describes how SAS/IML programmers can construct, upload, download, and install packages.

Outlier Detection Using the Forward Search in SAS/IML Studio
Polfliet, Jos; SAS Institute, 2016This paper shows the power of SAS/IML Studio as an interactive tool for exploring and detecting outliers using customized algorithms that were built from scratch.

Ten Tips for Simulating Data with SAS
Wicklin, Rick; SAS Institute, 2015This paper presents 10 techniques that enable you to write efficient simulations in SAS. Examples include how to simulate data from a complex distribution and how to use simulated data to approximate the sampling distribution of a statistic.

Getting Started with the SAS/IML Language
Wicklin, Rick; SAS Institute, 2013This paper introduces the SAS/IML language to SAS programmers who are familiar with elementary linear algebra.

Rediscovering SAS/IML Software: Modern Data Analysis for the Practicing Statistician
Wicklin, Rick; SAS Institute, 2010This paper presents short programs that implement modern data analyses in SAS/IML software.

An Analysis of Airline Delays with SAS/IML Studio
Wicklin, Rick; SAS Institute, 2009A massive set of data was assembled from the Research and Innovative Technology Administration (RITA) which coordinates the U.S. Department of Transportation (DOT) research programs. The data consist of 123 million records of U.S. domestic commercial flights between 1987 and 2008. Each flight contains information about 29 variables. The paper graphically presents ways in which flight delays and cancellations vary in time, among airports, and among airline carriers.

SAS/IML Studio: A Programming Environment for HighEnd Data Analysts
Wicklin, Rick; SAS Institute, 2008This paper explains several analytical techniques that you can program in SAS/IML Studio.

An Introduction to SAS/IML Studio: A Programmable Successor to SAS/INSIGHT
Wicklin, Rick; SAS Institute, 2007This paper uses financial data to illustrate both pointandclick and programming features of SAS/IML Studio.
SAS/IML software includes hundreds of functions for implementing specialized analyses and algorithms, and lets you submit R code from within SAS.
Matrix functions
 Use matrix operations such as multiplication, direct products and factorizations.
 Apply mathematical operators and functions to each element of a matrix.
 Use multithreaded computations for large matrices.
 Find elements in a matrix that satisfy given conditions.
 Compute descriptive statistics for each column of a matrix.
 Create structured matrices, such as diagonal, banded and block diagonal.
 Reshape, transpose and concatenate matrices.
 Compute correlation and covariance matrices.
 Count, identify or remove missing values or other special values from matrices.
Control statements
 Direct the flow of execution of SAS/IML statements.
 Enable program modularization.
 Perform numerical analysis and call statistical functions.
 Find roots of polynomials and general nonlinear functions.
 Compute inverses and generalized inverses, and solve sparse systems of linear equations.
 Compute numerical integrals and derivatives; compute eigenvalues and eigenvectors.
 Perform Cholesky, singular value and complete orthogonal decompositions.
 Perform QR decomposition by Householder rotation or the GramSchmidt process.
 Perform discrete sequential tests.
Time series functions
 Analyze ARMA models and their generalizations.
 Simulate a univariate ARMA time series or multivariate correlated time series.
 Compute autocovariance estimates for time series.
 Perform finite Fourier transformations and inverse FFTs, Kalman filtering and wavelet analysis.
Numerical analysis functions
 Perform numerical integration.
 Use nonlinear optimization.
Optimization algorithms
 Solve linear programming and mixedinteger linear programming problems.
 Use multiple methods for constrained and unconstrained nonlinear optimization.
 Specify linear or nonlinear constraints.
 Apply genetic algorithms.
Data visualization
 Create standard ODS statistical graphics, such as histograms and scatter plots.
 Create heat maps to visualize data in matrices.
 Call ODS statistical procedures directly to create complex graphs.
Data simulation
 Generate random samples from standard univariate distributions.
 Generate random samples from standard multivariate distributions.
 Generate random permutations and combinations.
 Generate a random sample from a finite set.
Extensibility
 Define your own function modules.
 Create and share packages of functions.
 Call any SAS procedure or DATA step.
 Call R functions and packages.
Interactive data analysis with SAS/IML Studio
 Identify observations in plots.
 Select observations in linked data tables and graphics.
 Exclude observations from graphs and analyses.
 Search, sort, subset and extract data.
 Transform variables.
 Compute descriptive statistics, quantilequantile plots and mosaic plots of crossclassified data.
 Fit parametric and kernel density estimates for distributions.
 Detect outliers in contaminated Gaussian data.
 Fit general linear models, logistic regression models and robust regression models.
 Smooth twodimensional data by using polynomials, loess curves and thinplate splines.
 Create residual and influence diagnostic plots.
 Include classification effects in logistic and generalized linear models.
 Create correlation matrices and scatter plot matrices with confidence ellipses.
 Perform principal components analysis, discriminant analysis, factor analysis and correspondence analysis.
 Efficient handling of large data transfers between client and server.
 Parallel execution of multiple SAS/IML Studio workspaces.
 Client support for 64bit Windows.
Integrated programming environment in SAS/IML Studio
 Write, debug and execute IMLPlus programs in an integrated development environment.
 Create customized, dynamically linked graphics.
 Develop interactive data analysis programs that use dialog boxes.