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-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
  • 6 replies
  • 1207 views
  • 6 likes
  • 3 in conversation