This is some simplified code I am using:
DATA WORK.Temp; INPUT A B; DATALINES; 1 . . 1 . . 1 2 ; Data WORK.TempOut; Set WORK.Temp; Test = coalescec(B, A); run;
WORK.TempOut looks as follows:
A B Test 1 . . . 1 1 . . . 1 2 2
I would expect Test in row 1 to contain 1 but it does not. Why is this? Why is the null entry in column B of row 1 not replaced by 1?
Hi: It looks like A and B are numeric variables. You are NOT using COALESCE you are using the form of the function for Character variables: COALESCEC.
I would expect you to be getting a note in the log, something like this:
NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
Have you tried the COALESCE function for numeric variables instead of COALESCEC?
cynthia
Hi: It looks like A and B are numeric variables. You are NOT using COALESCE you are using the form of the function for Character variables: COALESCEC.
I would expect you to be getting a note in the log, something like this:
NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
Have you tried the COALESCE function for numeric variables instead of COALESCEC?
cynthia
That makes sense. Thanks it works!
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.