Need Help on PDV

Reply
N/A
Posts: 1

Need Help on PDV

I have this SAS sample code:

data BEFORE;

    input v1 v2;

datalines;

1 2

;

data AFTER;

    put 'Before IF: ' _ALL_;

    if _N_ = 1 then set BEFORE;

    put 'After  IF : ' _ALL_;

run;

The output is:

BEFORE: v1=. v2=. _ERROR_=0 _N_=1

AFTER : v1=1 v2=2 _ERROR_=0 _N_=1

BEFORE: v1=1 v2=2 _ERROR_=0 _N_=2

AFTER : v1=1 v2=2 _ERROR_=0 _N_=2

And the output file contains:

Obs    v1    v2

1      1     2

2      1     2

I would like to understand why two observations set in the new dataset with repeated values. Please clerify.

Regular Contributor
Posts: 233

Re: Need Help on PDV

The reason why it's appearing twice is because of the below code

if _N_ = 1 then set BEFORE; 

This step copies the results from before and pastes it After data set.

    put 'After  IF : ' _ALL_;

_ALL_ does the same but it copies the results from AFTER and pastes it again.

Fix to the code would be

data BEFORE;
input v1 v2;
datalines;
1 2
;


data AFTER;
put 'Before IF: ' _ALL_;
set BEFORE;
put 'After  IF : ' _ALL_;
;
run;

proc print; run;

PROC Star
Posts: 7,487

Re: Need Help on PDV

Ask a Question
Discussion stats
  • 2 replies
  • 219 views
  • 0 likes
  • 3 in conversation