Dear all,
I have a SAS data set(mydata.sas7bdat). It looks like the following:
Field1
24
3872
349
1111
If I use text function in Excel, I can convert the numbers to character values using =text(A2, "0000").
Field2
0024
3872
0349
1111
How can I do that in SAS?
Not sure if this is what you want:
data have;
input Field1;
cards;
24
3872
349
1111
;
data want (keep=_c rename=_c=Field1);
set have;
_c=put(field1,z4.);
run;
proc print;run;
Regards,
Haikuo
ODS tagsets.excelxp
provides a way to do this
It allows you to define the custom format for excel to apply the format
It also allows you to apply an excel formula
There are many examples in the ODS forum
Not sure if this is what you want:
data have;
input Field1;
cards;
24
3872
349
1111
;
data want (keep=_c rename=_c=Field1);
set have;
_c=put(field1,z4.);
run;
proc print;run;
Regards,
Haikuo
Thank you, Haikuo. It works!
or
data have;
input Field1;
cards;
24
3872
349
1111
;
proc sql;
select put(field1,z4.) as field1
from have;
quit;
data have;
input Field1;
cards;
24
3872
349
1111
;
run;
data have1;
set have;
if length(field1)=1 then "000"||field1;
else;
if length(field1)=2 then "00"||field1;
else;
if length(field1)=3 then "0"||field1;
else field1=field1;
run;
Regards
Sanjeev K
SAnjeev
YOu have to learn about the Z. format. The example a few postings earlier in this thread show how much it improves on your solution.
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.
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.