Obsidian | Level 7

## Array problem?

Hi there,

Based on the image attached above, really appreciate if someone can guide me on how to get the exclusion figures in the yellow box. Does it require the usage of array programming?

I'm stuck on writing the code for the exclusion calculation.

data summ(drop= t1 t2 t3 t4);

set w1;

base = coalesce(t1,t2,t3,t4);

/** stuck here for exclusion calculation **/

run;

Anyone's help will be greatly appreciated! Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
PROC Star

## Re: Array problem?

Here are a couple of statements you could add to the DATA step:

exclusion = - dif(base);

if _n_ = 1 then exclusion = 0;

4 REPLIES 4
PROC Star

## Re: Array problem?

Here are a couple of statements you could add to the DATA step:

exclusion = - dif(base);

if _n_ = 1 then exclusion = 0;

Obsidian | Level 7

## Re: Array problem?

Hi Astounding,

I have just started using SAS a few months back. Thank you for introducing me to the DIF function. Have never used this before. Can't wait to try this at work tomorrow.

Again, many thanks!

Barite | Level 11

## Re: Array problem?

From the same category there also is lag function. Of course carefulness shall be paid when using this function and reading the documention might a good start:

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000212547.htm

data have;
input item t1 t2 t3 t4 ;
datalines;
1 700 . . .
2 . 650 . .
3 . . 630 .
4 . . . 620
;
run;

data want;
set have;

base = coalesce(t1,t2,t3,t4);
base_prec=lag(base);
exclusion=ifn(base_prec,base_prec-base,0);
run;

Obsidian | Level 7

## Re: Array problem?

Thank you Loko and noted. Will go through the documentation and explore more on the lag function. Thanks again! 🙂

Discussion stats
• 4 replies
• 1272 views
• 2 likes
• 3 in conversation