Hi All,
Thanks for any help in advance.
I have a dataset that is like this:
Key Width
123 99,99
456 99
789 87,99,142
What I wish I had was the following:
Key NewWidth Number
123 99 1
123 99 2
456 99 1
789 87 1
789 99 2
789 142 3
I have searched a few of the messages and gotten some things to work but they require the NewWidth to always be the same # of characters...which it can be 2 or 3 characters. So far I have attempted using substr(), scan(), countc()...nothing has clicked.
Again, thanks for any pointers!!!
Well - turns out I should have just kept trying!! Just solved it...
data test (keep=Key NewWidth Number);
set a.datasetname;
count=count(width,',');
put count=;
do i=1 to (count+1);
NewWidth=scan(width,i,',');
Number=i;
output;
end;
run;
Well - turns out I should have just kept trying!! Just solved it...
data test (keep=Key NewWidth Number);
set a.datasetname;
count=count(width,',');
put count=;
do i=1 to (count+1);
NewWidth=scan(width,i,',');
Number=i;
output;
end;
run;
data want;
set have;
number=0;
do i=1 by 1;
newwidth=scan(width,i);
if not missing(newwidth) then do;
number+1;
output;
end;
if missing(newwidth) then leave;
end;
drop i width;
run;
It is not clear whether newWidth should be character or numeric. Here is a way to get both:
data want;
set have;
do number = 1 by 1;
newWidth = scan(width, number, ",");
if missing(newWidth) then leave;
numWidth = input(newWidth, best.);
output;
end;
keep key newWidth number numWidth;
run;
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!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.