BookmarkSubscribeRSS Feed
NURAO
Obsidian | Level 7

Hi all. Basically im doing coding for boxplot for purpose outlier detection. I dont know what went wrong with my coding, no results no errors. I have tried FLOOR func to replace LOC, nothing happen still. code LEFT meaning, the data that clear from outlier as LOWFEN and UPPFEN are the fences to detect outlier. So how can i print the LEFT(data without outlier). my data contain 3 group. 

 

 

 

 

 

PROC IML;
RESET NONAME;


START BP(A) GLOBAL (NY,NCOL,RMEAN,VARX,N);
RMEAN=J(NCOL(NY),1,0);
Q1=RMEAN;
Q3=RMEAN;
RMAD=RMEAN;
MADN=RMEAN;
LOWFEN=RMEAN;
UPPFEN=RMEAN;
LEFT=RMEAN;
F=1;
M=0;

DO J=1 TO NCOL(NY);

SAMP=NY[J];
L=M+SAMP;
TEMP=A[F:L];

Q=quartile (TEMP);
Q1[J]=Q[2,1];
Q3[J]=Q[4,1];
RMAD[J]=MAD(TEMP,"MAD");
MADN[J]=MAD(TEMP,"NMAD");
LOWFEN[J]=Q1[J]-(1.44*MADN[J]);
UPPFEN[J]=Q3[J]+(1.44*MADN[J]);
LEFT[J]=TEMP[LOC(LOWFEN[J]<TEMP & TEMP<UPPFEN[J])];


M=L;
F=F+SAMP;

END;

PRINT LEFT;

 

FINISH;

********cubaan menggunakan data yg dijana*******;

NY = {11 11 11};
A = {5,8,7,3,9,4,3,29,5,6,7,
3,2,6,4,14,4,7,6,9,3,4,
9,9,8,7,10,11,27,12,15,17,16};

 

QUIT;

2 REPLIES 2
WarrenKuhfeld
Ammonite | Level 13

You did not print anything.  That is why nothing is printed.  You defined BP and two vectors, then you quit.  

Rick_SAS
SAS Super FREQ

First, you need to call the BP module before you quit:

RUN BP(A);

 

Second, in your module, you have the statement

LEFT[J]=TEMP[LOC(LOWFEN[J]<TEMP & TEMP<UPPFEN[J])];

The left-hand side of the assignment is a scalar. However, the right-hand side is *in general) a vector. You cannot assign a vector into a single element, so you will get 

ERROR: (execution) Matrices do not conform to the operation.

which means that you are attempting a vector operation that doesn't make sense.

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

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