Help using Base SAS procedures

PROC DS2 and _error_

Reply
Contributor
Posts: 41

PROC DS2 and _error_

I have started using DS2 programming and have hit a snag.  I have tried to convert a data step into DS2, however I am not 100 % sure that the procedure is handling the _error_ :

 

proc ds2;
data spdework.dsn1 (overwrite=yes) spdework.dsn2 (overwrite=yes);
  dcl char brand country ;
  dcl double _error_ ;
  method init();
  end;
  method run();
 SET spdework.aami_rif_1 (rename=( nvar_pre=nvar));

 IF gdp>0 and content>0 then
  country='US';
 else if gdp>0 then
  country='UK';
 else if content>0 then
  country='EU';
 else
  PUT 'errors';

 if nvar>0 then
  nvar=1;
 brand='Brand X  ';
 set {select distinct customer from spdework.dsn3};
 if _error_ then
  output spdework.dsn1;
 else
  output spdework.dsn2;

  end;
  method term();
  end;
enddata;
run; quit;

 

In data step I was getting 606490 in DS2 112810 obs.  Any help would be appreciated.

 

Thanks

SAS Super FREQ
Posts: 708

Re: PROC DS2 and _error_

Posted in reply to gra_in_aus

Hi

 

The _ERROR_ is an automatic variable within the DATA Step. You do not have the same variable available in DS2.

 

From the doc:

Automatic Variables

_ERROR_
is 0 by default but is set to 1 whenever an error is encountered, such as an input data error, a conversion error, or a math error, as in division by 0 or a floating point overflow.
 
I assume there is some data type conversion, this triggered the _ERROR_ to be set to 1, whereas this does not happen in DS2.
 
Bruno
Ask a Question
Discussion stats
  • 1 reply
  • 154 views
  • 0 likes
  • 2 in conversation