Write and run SAS programs in your web browser

Creating a new variable with reduced characters...

Reply
User
Posts: 1

Creating a new variable with reduced characters...

Hello,

 

I am new to SAS programming and I am trying to: 

 

1. Create a new variable that is reduced from 14 characters to 7 characters for 17898 observations.

2. I also need to use one or more text manipulation functions to remove the word "COUNTY" from each value because each variable is two words, ie. Hudson County.

3. Finally, I also need to keep the variable name should also be County in the output data set.

 

Please help anyone!

 

T. Faison

Jersey City, NJ

Chemistry teacher

PROC Star
Posts: 7,363

Re: Creating a new variable with reduced characters...

Are you trying to do something like the following?:

data have;
  informat address $14.;
  input address &;
  cards;
North County
South County
N. West County
County County
;

data want;
  set have;
  length County $7.;
  county=tranwrd(address,' County','');
run;

Art, CEO, AnalystFinder.com

Trusted Advisor
Posts: 1,615

Re: Creating a new variable with reduced characters...

What does "reduced" mean? Does it mean only use the first seven characters? If so, the code below will work. If "reduced" means something else, then please tell us.

 

UNTESTED CODE

 

county=tranwrd(county,'county','');
county=substr(county,1,7);
Super User
Posts: 17,828

Re: Creating a new variable with reduced characters...

These can all be accomplished with SAS functions. 

This list has SAS functions by category so you can search for the function that you need. 

http://support.sas.com/documentation/cdl/en/lefunctionsref/69762/HTML/default/viewer.htm#p0w6napahk6...

 

Pas an example:

1. SUBSTR()  to take a portion of a string. 

2. SCAN() allows you to extract strings based on a delimiter

2. TRANWRD() allows you to replace a word

 

FYI - the number of rows doesn't matter. The code is the same unles you maybe have 20 million plus. Then you'll save time processing. 

 

Data example;
Set SASHELP.class;

Name = substr(name, 1,5); *takes first 5 characters of the name;

Sample_text = "Hudson County";

County = scan(sample_text, 1);

Run;

Proc print data=example;
Run;
Ask a Question
Discussion stats
  • 3 replies
  • 128 views
  • 0 likes
  • 4 in conversation