I have a variable with values as follows:
med_qty
100ml
2*96
2*100g
I want to make the above data into :
dose dosage qty
100 ml
96 2
100 2 g
Here is one way:
data want (drop=med_qty); set have; if anyalpha(med_qty) then do; qty=substr(med_qty,anyalpha(med_qty)); med_qty=substr(med_qty,1,anyalpha(med_qty)-1); end; dose=input(scan(med_qty,1,'*'),8.); dosage=input(scan(med_qty,2,'*'),8.); run;
Art, CEO, AnalystFinder.com
Here is one way:
data want (drop=med_qty); set have; if anyalpha(med_qty) then do; qty=substr(med_qty,anyalpha(med_qty)); med_qty=substr(med_qty,1,anyalpha(med_qty)-1); end; dose=input(scan(med_qty,1,'*'),8.); dosage=input(scan(med_qty,2,'*'),8.); run;
Art, CEO, AnalystFinder.com
data have;
input med_qty $20.;
datalines;
100ml
2*96
2*100g
;
data want;
set have;
if index( med_qty, '*')>0 then do;
dose=compress(scan(med_qty,2,'*'),,'kd');
dosage=scan(med_qty,1,'*');
qty=compress(med_qty,'*','d');
end;
else do;
dose=compress(med_qty,,'kd');
qty=compress(med_qty,'*','d');
end;
run;
Thank you very much!
Thank you very much
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.