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

Hi All,

 

I am trying extract upper triangular elements using SAS/IML, I am getting the result incorrectly.

 

proc iml;
corr = {0 -26 44 34 -85
26 0 65 -56 43
-44 -65 0 21 7
-34 56 -21 0 21
85 -43 -7 -21 0};
r = row(corr);
c = col(corr);
upperTri = loc(r < c);
v = corr[upperTri];
print v;

 

Desired output :

-26

44

34

-85

65

-56

43

21

7

21

 

But I am getting output as :

-26
44
34
-85
26
0
65
-56
43
-44
-65
0
21
7
-34
56
-21
0
21
85
-43
-7
-21
0

 

 

Please help me!

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26

I think this identifies the problem

 

proc iml;
corr = {0 -26 44 34 -85
26 0 65 -56 43
-44 -65 0 21 7
-34 56 -21 0 21
85 -43 -7 -21 0}; 
print corr;
show corr;
--
Paige Miller

View solution in original post

4 REPLIES 4
PaigeMiller
Diamond | Level 26

I think this identifies the problem

 

proc iml;
corr = {0 -26 44 34 -85
26 0 65 -56 43
-44 -65 0 21 7
-34 56 -21 0 21
85 -43 -7 -21 0}; 
print corr;
show corr;
--
Paige Miller
koyelghosh
Lapis Lazuli | Level 10

@Deva_123I just reshaped it into a square matrix (5x5) and got the output as below.

 

OutputOutput

The code is as below.

proc iml;
corr = {0 -26 44 34 -85
26 0 65 -56 43
-44 -65 0 21 7
-34 56 -21 0 21
85 -43 -7 -21 0};
corr = shape(corr,5);
r = row(corr);
c = col(corr);
upperTri = loc(r < c);
v = corr[upperTri];
print v;
run;

Best wishes

Ksharp
Super User

Paige is right. You missed comma ',' .

And why not post it at IML forum ?

 

 


proc iml;
corr = {0 -26 44 34 -85 ,
26 0 65 -56 43 ,
-44 -65 0 21 7 ,
-34 56 -21 0 21 ,
85 -43 -7 -21 0};
r = row(corr);
c = col(corr);
upperTri = loc(r < c);
v = corr[upperTri];
print v;

quit;

 

 

 

OUTPUT:

v
-26
44
34
-85
65
-56
43
21
7
21
Deva_123
Calcite | Level 5

Thanks a lot for your quick reply! This is working perfectly!

 

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 4 replies
  • 1229 views
  • 2 likes
  • 4 in conversation