BookmarkSubscribeRSS Feed
tim-hahn
Fluorite | Level 6

Thank you very much for taking time to read this post.

 

I have a Variable ISIN wich is the International Securities Identification Number representing individual securities.It is a 12-character alphanumeric code with a formate like US0231351076 or US00163U1060 etc. 

 

I would like to transform it to a numeric variable still having the individual representation.

However my code only returns an empty column:

 

data work.neu;

set work.neu;

isin_num = input(ISIN, best12.);

run;

 

Thank you very much!

 

 

 

11 REPLIES 11
yabwon
Onyx | Level 15

Is that second "U" valid in the second example? If not then this should help.

data work.neu2;
  set work.neu;
  isin_num = input(compress(ISIN,,"kd"), best12.);
run;

All the best

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



tim-hahn
Fluorite | Level 6

Thank you @yabwon for your quick solution.

However, the second U is valid and also the zeros should not be eliminated.

 

Is it possible to change the Charaters to their decimal place in the alphabet?

So U would become 21 and S would become 12?

 

Shmuel
Garnet | Level 18

Can it be that one person is identified

    by  US00163U1060  and another

    by US00163X1060 - same digits but different alpha characters?

if positive then you can't just use the digits eliminating the alpha characters.

tim-hahn
Fluorite | Level 6
from what I understand I guess this could be possible
Kurt_Bremser
Super User

"U" or "X" are not digits, so you can't put that into a number without losing information.

Big hint: identification codes (even if fully numeric) should ALWAYS be stored as character.

tim-hahn
Fluorite | Level 6

thank you @Kurt_Bremser .

 

My problem is I would like to merge two data sets by ISIN however this returns an ERROR: by variable ISIN is not on input dada set. And the resulting new data set has 0 observations.

Kurt_Bremser
Super User

@tim-hahn wrote:

thank you @Kurt_Bremser .

 

My problem is I would like to merge two data sets by ISIN however this returns an ERROR: by variable ISIN is not on input dada set. And the resulting new data set has 0 observations.


That is NOT a problem of numeric vs. character. Instead, the variable does not exist at all.

tim-hahn
Fluorite | Level 6
Oh i thought because it is not numeric it can not be readed
Kurt_Bremser
Super User

@tim-hahn wrote:
Oh i thought because it is not numeric it can not be readed

Maxim 3: Know Your Data. This starts (after checking that a dataset exists in the first place) with looking which columns are present in the dataset.

Shmuel
Garnet | Level 18

is it possible that the variable name is different then ISIN and therefore you got the error message of: variable ISIN is not on input ... ?

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
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
  • 11 replies
  • 1159 views
  • 0 likes
  • 4 in conversation