Hi all,
I need help with the following:
I have a 2 variables in a dataset
n= number
label = string e.g. X!3.479!3.49902!3.43968!3.49919!3.5432!3.69513!3.52109!3.53714!
What I need to do is - retrieve the 'n' th value (seperated by "!").
For example:
n= 2
value= 3.49902
Im guessing I need to use a scan?
Many thanks
jammy,
Yes, you'll need SCAN. However, SCAN alone will create VALUE as a character variable:
value = scan(string, n, '!');
If you want VALUE as a numeric variable, you'll have to apply the INPUT function to the result returned by the SCAN function:
value = input( scan(string, n, '!'), 8.);
It won't hurt to use a length of 8 in the INPUT function when the incoming string contains fewer than 8 characters. Good luck.
Yes
My bad..... I was trying to make it more complicated than it is!
Cheers
jammy,
Yes, you'll need SCAN. However, SCAN alone will create VALUE as a character variable:
value = scan(string, n, '!');
If you want VALUE as a numeric variable, you'll have to apply the INPUT function to the result returned by the SCAN function:
value = input( scan(string, n, '!'), 8.);
It won't hurt to use a length of 8 in the INPUT function when the incoming string contains fewer than 8 characters. Good luck.
Also if you want to know the different nth values, try the below code
data have;
string="X!3.479!3.49902!3.43968!3.49919!3.5432!3.69513!3.52109!3.53714!";
do i = 1 to 10;
new=scan(string,i,'!');
output;
end;
run;
Thanks,
Jag
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 the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.