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.
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.