I have raw data consisting of a long string of numbers separated by semicolons. Like this:
1; 2; 3; 4; 5; …
I don’t know the number of values in advance.
I’d like to read these in using a data step and create one observation per value.
I’ve looked at several examples of using the input statement, but nothing works the way I would like it to.
Anyone have a suggestion?
You can use double trailing @ to read multiple obs from one record.
data a;
infile cards4 dsd dlm=';';
input v @@;
cards4;
1; 2; 3; 4; 5;
;;;;
run;
You can use double trailing @ to read multiple obs from one record.
data a;
infile cards4 dsd dlm=';';
input v @@;
cards4;
1; 2; 3; 4; 5;
;;;;
run;
That's a good approach. You might find it necessary to include blanks as delimiters as well:
dlm='; '
This is very cool, thanks. I had forgotten all about @@.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.