DATA Step, Macro, Functions and more

How to fix Divide by 0 error in code

Accepted Solution Solved
Reply
New User
Posts: 1
Accepted Solution

How to fix Divide by 0 error in code

Hi There,

 

New to SAS coding so if you need more details please let me know

 

I am getting the following error when to running a code is EG 4.3

 

ERROR: CLI open cursor error: ERROR:  Divide by 0 

 

Sample of data set

 

 ID   Card_Sales   Card_Used

001  25                5

002  10                8

003  7                  2

004  0                  0

 

SAS Code I am using:

 

Card_Used / Card_Sale as Ratio

 

Any assistance would be greatly appreicated.

 

Thanks


Accepted Solutions
Solution
‎02-01-2016 01:25 PM
Contributor
Posts: 38

Re: How to fix Divide by 0 error in code

data want;
set have;
if card_sales in (0,.) then ratio = 0;
else ratio = card_used/card_sales;
run;

View solution in original post


All Replies
Super User
Posts: 5,082

Re: How to fix Divide by 0 error in code

If you were working in a DATA step, the best way would be to use an IF/THEN statement:

 

if Card_Sale then Ratio = Card_Used / Card_Sale;

 

That would skip the processing when Card_Sale is either zero or missing.  Since it looks like you are working with SQL instead, you would need to add a CASE statement to assign Ratio a missing value when Card_Sale is zero or missing.

Solution
‎02-01-2016 01:25 PM
Contributor
Posts: 38

Re: How to fix Divide by 0 error in code

data want;
set have;
if card_sales in (0,.) then ratio = 0;
else ratio = card_used/card_sales;
run;
SAS Super FREQ
Posts: 3,477

Re: How to fix Divide by 0 error in code

You should set ratio=. (missing value) if the denominator is invalid.  Using zero is not correct.

Super User
Posts: 9,681

Re: How to fix Divide by 0 error in code

Use function  DIVIDE().

ratio =divide( card_used,card_sales) ;
☑ This topic is SOLVED.

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

Discussion stats
  • 4 replies
  • 974 views
  • 3 likes
  • 5 in conversation