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

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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
  • 1360 views
  • 2 likes
  • 4 in conversation