BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
saibot
Calcite | Level 5

Hi all,

at first an example:

PROC IML;

   a = {1 2 3} ; b = {1,2,3}; c = {1 2 3, 2 3 4, 3 4 5}  ;

   ssq_a       = SSQ(a);

   sum_b       = SUM(b);

   median_c    = MEDIAN(c);

      print a b c       ssq_a       sum_b       median_c    ;

   std_a = STD(a)    ;

   std_c = STD(c)    ;

      print       std_a       std_c ;

QUIT  ; *proc iml ;

My question: In the SAS Online Doc: http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/viewer.htm#langref_sect315.htm there is a list of the "Base SAS Functions Accessible from SAS/IML". As you can see, if you run the example above, only some of the listed base functions work, like SUM, SSQ or MEDIAN, but not STD or CV. How can I use the sas base functions like STD, CV,... in IML?

Thank you in advance for every tip, best regards,

saibot

1 ACCEPTED SOLUTION

Accepted Solutions
Rick_SAS
SAS Super FREQ

1) This issue is discussed and solved in Section 4.9 of my book, Statistical Programming with SAS/IML Software.

2) If you are using SAS IML 9.22 or beyond, you can use the VAR function, and of course STD=sqrt(VAR(..)). SAS 9.3 supports the STD function directly.

For more on this topic, see my blog: http://blogs.sas.com/content/iml/2011/06/08/calling-base-sas-functions-from-sasiml-how-to-handle-arg...

View solution in original post

2 REPLIES 2
Rick_SAS
SAS Super FREQ

1) This issue is discussed and solved in Section 4.9 of my book, Statistical Programming with SAS/IML Software.

2) If you are using SAS IML 9.22 or beyond, you can use the VAR function, and of course STD=sqrt(VAR(..)). SAS 9.3 supports the STD function directly.

For more on this topic, see my blog: http://blogs.sas.com/content/iml/2011/06/08/calling-base-sas-functions-from-sasiml-how-to-handle-arg...

saibot
Calcite | Level 5

Thank you very much for your help, Rick. I tried the function GetArgList that you proposed in your blog and it worked fine.

I am very surprised that the use of such elementary functions in IML is so complicated. In some cases, for example for such simple functions like STD or CV, the programming "by hand" is easier to read than the three steps "GetArgList --> Creation of Macro Variable --> Use of SAS-Base function with macro variable". But as more base functions are available in higher SAS versions, it seems that SAS is working on that topic.

Thank you and best regards,

saibot

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 2 replies
  • 831 views
  • 0 likes
  • 2 in conversation