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

I've scanned the SAS/IML® 13.2 User’s Guide (UG) and didn't find a list of of functions that operate on the columns of an NxM array, returning a 1XM vector of results.

So I made this list:  CV  KURTOSIS  MEAN  MEDIAN  SKEWNESS  STANDARD  VAR

Did I miss any?   Is this list somewhere in the UG?

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User

Rick is absolutely right. But there are already some IML version of these function . Like :

x = {1 0,

2 1,

4 2,

8 3,

16 . };

kurt = kurtosis(x);

print kurt;

x = {5 1 10,

6 2 3,

6 8 5,

6 7 9,

7 2 13};

mean = mean(x);

print mean;

x = {1 3,

2 3,

4 9,

10 0};

med = median(x);

print med;

They are all column operation .

Xia Keshan

View solution in original post

6 REPLIES 6
Rick_SAS
SAS Super FREQ

I assume you are primarily interested in descriptive statistics for each column. You can add the following functions:

COUNTMISS
COUNTN
COUNTUNIQUE
MAD
QNTL
QUARTILE

Also, subscript reduction operators enable you to perform columnwise operations:
SUM via x[+, ];
PROD via x[#, ];
MAX via x[<>, ];
MIN via x[><, ];
Index of maximum via x[<:>, ];
Index of minimum via x[>:<, ];
SSQ via x[##, ];

stevo642
Obsidian | Level 7

Rick -- thank you -- great reply -- this is exactly what I'm interested in.

BTW, I found QNTL last night going through your helpful tip sheet.

Ksharp
Super User

If I don't make a mistake, these data step function also could be applied to IML.

Check it at the bottom of IML documentation, you can find them all.

Ksharp

Message was edited by: xia keshan

stevo642
Obsidian | Level 7

Xia -- I'm not sure I understand -- can you provide an example(s)?

Rick_SAS
SAS Super FREQ

All of the DATA step function are applied elementwise.  For example, if x is a matrix then y=sin(x) returns a matrix of the same size such that y[i,j] = sin(x[i,j]).  The OP is asking about functions that operate on each column of an (n x p) matrix and produce a (1 x p) vector of results.

Ksharp
Super User

Rick is absolutely right. But there are already some IML version of these function . Like :

x = {1 0,

2 1,

4 2,

8 3,

16 . };

kurt = kurtosis(x);

print kurt;

x = {5 1 10,

6 2 3,

6 8 5,

6 7 9,

7 2 13};

mean = mean(x);

print mean;

x = {1 3,

2 3,

4 9,

10 0};

med = median(x);

print med;

They are all column operation .

Xia Keshan

sas-innovate-white.png

Missed SAS Innovate in Orlando?

Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.

 

Register now

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 6 replies
  • 2195 views
  • 6 likes
  • 3 in conversation