DATA Step, Macro, Functions and more

Finding Data errors with _error_

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 5
Accepted Solution

Finding Data errors with _error_

In the below example, 

 


data test;
input ID Name$;
datalines;
121 Kiran
768 Kumar
tyu Raj
;
run;

data good bad;
set test;
if _error_=1 then output bad;
else output good	;
run;

proc print data=bad;
run;

The dataset 'bad' is showing 0 observations, however i expect it to list the last observation from dataset, as there is a data error (_error_=1); Could some one please explain why it is not showing up.


Accepted Solutions
Solution
‎12-25-2016 09:42 AM
Super User
Super User
Posts: 7,970

Re: Finding Data errors with _error_

You will want to read this:

https://v8doc.sas.com/sashtml/lrcon/z0695104.htm

 

Basically as the datastep runs its loop, it goes line by line into the PDV, _error_ is a variable in that PDV which does not get written to the output dataset.  So after the first run; that variable no longer exists.  It is created again in the second step, but as there are no errors then the _error_ variable is always false, hence no observations.  This will work as the if _error_ is in the same step:

data bad good;
  input ID Name$;
  if _error_ then output bad;
  else output good;
datalines;
121 Kiran
768 Kumar
tyu Raj
;
run;

 

View solution in original post


All Replies
Solution
‎12-25-2016 09:42 AM
Super User
Super User
Posts: 7,970

Re: Finding Data errors with _error_

You will want to read this:

https://v8doc.sas.com/sashtml/lrcon/z0695104.htm

 

Basically as the datastep runs its loop, it goes line by line into the PDV, _error_ is a variable in that PDV which does not get written to the output dataset.  So after the first run; that variable no longer exists.  It is created again in the second step, but as there are no errors then the _error_ variable is always false, hence no observations.  This will work as the if _error_ is in the same step:

data bad good;
  input ID Name$;
  if _error_ then output bad;
  else output good;
datalines;
121 Kiran
768 Kumar
tyu Raj
;
run;

 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 199 views
  • 0 likes
  • 2 in conversation