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?
thanks
Raymond
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, '[/]');
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.