DATA Step, Macro, Functions and more

problem extracting numeric values

Posts: 53

problem extracting numeric values

Dear friends at SAS community

I have a dataset that has 4000 observations.


In this dataset, I have a variable var1 which contains text data like this"[123/121/324/345]".  I need to extract the numbers as separate numeric variables.  For any observation, there can be up to 30 numbers in var1 that I need to extract:


so I am trying to extract new1=123, new2=121, new3=324 and new4=345.   I tried the following code:

new1=scan(compress(var1, '[]'),1,'/');

new2=scan(compress(var1, '[]'),2,'/');

new3=scan(compress(var1, '[]'),3,'/');

new4=scan(compress(var1, '[]'),4,'/');


but the results do not seem correct.  The last number is missing and never extracted.  Also, when an observation only has one number in var1, e.g. var1="[123]", new1 is missing rather than 123 that I want to have.  


any thoughts of a solution?




Super User
Posts: 6,754

Re: problem extracting numeric values

[ Edited ]

I had no trouble extracting all four numbers, using your formulas.  Still, I would recommend a simplification:


new1=scan(var1, 1, '[/]');

new2=scan(var1, 2, '[/]');

new3=scan(var1, 3, '[/]');

new4=scan(var1, 4, '[/]');

Ask a Question
Discussion stats
  • 1 reply
  • 2 in conversation