DATA Step, Macro, Functions and more

coalesce in datastep

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 78
Accepted Solution

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: 8,743

Re: coalesce in datastep

[ Edited ]

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)Smiley SadColumn).

Have you tried the COALESCE function for numeric variables instead of COALESCEC?

cynthia

View solution in original post


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

Re: coalesce in datastep

[ Edited ]

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)Smiley SadColumn).

Have you tried the COALESCE function for numeric variables instead of COALESCEC?

cynthia

Frequent Contributor
Posts: 78

Re: coalesce in datastep

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
  • 801 views
  • 0 likes
  • 2 in conversation