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) ;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.