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
data want;
set have;
if card_sales in (0,.) then ratio = 0;
else ratio = card_used/card_sales;
run;
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.
data want;
set have;
if card_sales in (0,.) then ratio = 0;
else ratio = card_used/card_sales;
run;
You should set ratio=. (missing value) if the denominator is invalid. Using zero is not correct.
Use function DIVIDE().
ratio =divide( card_used,card_sales) ;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.