SAS author's tip: differences between IMLPlus and the IML Procedure


SAS superstar Rick Wicklin and his book Statistical Programming with SAS/IML Software inspired this week’s SAS author’s tip. Besides earning stellar reviews from SAS users, Rick is one of those highly productive people who stands out in whatever role he’s undertaking—from senior research statistician developer at SAS to developer of IML procedure and the SAS/IML Studio application to popular blogger to paper presenter to musical performer. You, too, can get a glimpse of Rick’s many talents by reading the following excerpt from his book!

The following excerpt is from SAS Press author Rick Wicklin's book Statistical Programming with SAS/IML Software. Copyright © 2010,  SAS Institute Inc., Cary, North Carolina, USA. ALL RIGHTS RESERVED. (please note that results may vary depending on your version of SAS software)

Differences between IMLPlus and the IML Procedure

This chapter primarily focuses on ways that the IMLPlus programming language extends the SAS/IML language. Most computational modules and programs that run in the IML procedure also run in IMLPlus without modification. However, there are a small number of SAS/IML statements and functions that are not supported in IMLPlus. The differences are described in the online Help in the chapter “The IMLPlus Language.”

Of these differences, the most important PROC IML statement that is not available in IMLPlus is the EXECUTE subroutine.

Another major difference is that IMLPlus programs do not intrinsically support SAS System global statements. For example, the following statements are not supported in IMLPlus:

  • Global SAS statements such as LIBNAME, FILENAME, and TITLE.
  • The OPTIONS statement.
  • The ODS statement.
  • Macro language statements. This includes using %let to define macro variables and using %macro to define macro functions, in addition to making calls to macro functions. Use the SYMGET and SYMPUT functions in Base SAS software to create macro variables from SAS/IML matrices, and vice versa.

You can still use these statements provided that you use them in a SUBMIT block. You can also submit these global statements by using the @ symbol, as described in Chapter 3, “Programming Techniques for Data Analysis.”

Programming Tip: In IMLPlus, you can submit a single SAS statement (for example, a global statement such as a LIBNAME, OPTIONS, or ODS statement) by preceding the statement with the @ symbol. For example, the following statement is valid in IMLPlus:
@ods trace on;

IMLPlus does not support the PROC IML low-level drawing routines such as GSTART, GOPEN, GPOLY, GPOINT, and GSHOW. Instead, IMLPlus provides high-level statistical graphs such as scatter plots, histograms, and box plots. IMLPlus also provides methods for drawing markers, lines, polygons, text, and other graphical objects on a plot. Section 9.10 provides a comparison between drawing in IMLPlus and drawing in PROC IML.

To learn more about Rick Wicklin and to read a free chapter from "Statistical Programming with SAS/IML Software", as well as view several bonus features related to his book, visit his author page. Be sure to also read and subscribe to Rick's blog The DO Loop!


About Author

Shelly Goodin

Social Media Specialist, SAS Publications

Shelly Goodin is SAS Publications' social media marketer and the editor of "SAS Publishing News". She’s worked in the publishing industry for over thirteen years, including seven years at SAS, and enjoys creating opportunities for fans of SAS and JMP software to get to know SAS Publications' many offerings and authors.

Related Posts

1 Comment

  1. Anders Sköllermo on

    Hi! "using %macro to define macro functions, in addition to making calls to macro functions. Use the SYMGET and SYMPUT functions in ...."." is not a good description. What You mean is rather "using %macro to define macro functionality....".

    Please note that SYMGET and SYMPUT are actually macro functions.

    / Br Anders Skollermo - English spelling - SAS user since 1981

Back to Top