BookmarkSubscribeRSS Feed
gyambqt
Obsidian | Level 7

Hi Expert,

 

Is there a way to generate numeric column based on the value a string column.

 

for example, my string column can have the value ABC123 then I want to convert this value into a fixed value 123456 using some SAS functions or format like $hex72.

 

I tried to format the character column using put(column,$hex72.) but it lost precision when I further convert into a numeric column

input(put(column,$72.)).

 

The reason I want to do this is because our primary key is in character format (ABC123) and I need to generate a numeric primary key to represent each primary key.

 

Thanks

2 REPLIES 2
error_prone
Barite | Level 11
Because abc123 ist not the hex-represantation of 123456, you have to explain the logic you want to use.

If you want to extract numbers from strigs, look at prxmatch or substrate with anydigit.
Kurt_Bremser
Super User

Numbers are a VERY BAD IDEA for primary keys. They are limited by the 8-byte real format, which means that any string longer than ~7 bytes will lose accuracy/precision. Stay with character storage.

UUID's can be stored reliably as 16-byte strings (use a $hex32. format for display).

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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