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.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.