## coalesce in datastep

Solved
Regular Contributor
Posts: 203

# coalesce in datastep

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?

Accepted Solutions
Solution
‎01-03-2017 10:17 AM
SAS Super FREQ
Posts: 9,324

## Re: coalesce in datastep

[ Edited ]
Posted in reply to csetzkorn

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

All Replies
Solution
‎01-03-2017 10:17 AM
SAS Super FREQ
Posts: 9,324

## Re: coalesce in datastep

[ Edited ]
Posted in reply to csetzkorn

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

Regular Contributor
Posts: 203

## Re: coalesce in datastep

Posted in reply to Cynthia_sas

That makes sense. Thanks it works!

☑ This topic is solved.

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

Discussion stats
• 2 replies
• 2468 views
• 0 likes
• 2 in conversation