BookmarkSubscribeRSS Feed
elli444
Calcite | Level 5

Hello all, 

I am creating a new variable in a data step. The code is below:

if hisp_not='.' then ethnicity1='';
if hisp_not='1' then ethnicity1='';
if hisp_not='0' then ethnicity1='E1';

 

When I run a proc print of var ethnicity1 the output has changed to "E". 

elli444_0-1593444321573.png

 

It is essential for the output data to be E1 in order to import into our database. 

I checked and the format is $4 so it's not a formatting issue. 

 

Does anyone have any idea why this would happen and how to fix it?

Thank you!

2 REPLIES 2
ballardw
Super User

If you examine the properties of the variable Ethnicity1 you will find that it has a length of one character and so cannot accept the second character. Format does not control length, only display appearance.

 

If the first use of a character variable is an assignment such as your Ethnicity1=''; that will set the length of the variable. You need to specify a length before use if want it to hold longer values.

 

length Ethnicity1 $ 2 ;

BEFORE the assignment code you are using.

If you want multiple values treated the same you can use the IN operator

if hisp_not='.' then ethnicity1='';
if hisp_not='1' then ethnicity1='';

/* can be replaced with*/
if hisp_not in ('.' '1' ) then ethnicity1='';

 

Reeza
Super User
is your variable hisp_not numeric or character?

SAS Innovate 2025: Call for Content

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!

Submit your idea!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 502 views
  • 1 like
  • 3 in conversation