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.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.