data t;
input sno category$ 20.;
cards;
1 dairy floor eggs
2 floor milk
3 eggs bread
4 bread butter butter
;run;
i have this data set and i want distinct category (dairy,floor,eggs,milk,bread,butter).
I can do like this
data t1;
set t;
do i=1 to 3;
x=scan(category,i);
output;
end;
run;
proc print;run;
but here i dnt knw how many times i have to run the loop like 3 or 4 or 5 times.Any optimum way?
data t1;
set t;
do i=1 to countw(category);
x=scan(category,i);
output;
end;
run;
Read the categories one by one until the end of each line:
data t;
infile datalines truncover;
input sno category :$20. @;
do until(missing(category));
output;
input category :$20. @;
end;
datalines;
1 dairy floor eggs
2 floor milk
3 eggs bread
4 bread butter butter
;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.