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, '[/]');
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.