tryiing to conver a num var (id) to char by writing this step:
data new;
set old (rename=(id=id1));
id=put(id1,2.);
drop id1;
run;
and i am getting asterix in the column of id. Does anyone know why?
You will get an asterisk whenever the numeric value is 100 or more ... so that it won't fit in a 2. format. You could guess at the right width to use:
id = put(id1, 4.);
Or, you could run a PROC MEANS and see what the maximum value is.
Good luck.
Looks like you're using a numeric format in your put statement. Also, when converting a numeric variable to character, often times it gives you leading blanks. Try modifying your code to this:
data new;
set old (rename=(id=id1));
id=strip(put(id1,$2.);
drop id1;
run;
Hope that helps!
You will get an asterisk whenever the numeric value is 100 or more ... so that it won't fit in a 2. format. You could guess at the right width to use:
id = put(id1, 4.);
Or, you could run a PROC MEANS and see what the maximum value is.
Good luck.
right!
i thought the numbers were two digit numbers and was expecting so but it turns out they were all between 100 and 500 so my formatting was not correct .
Thanks
Thank you all guys for the quick reponse
Here you go:
data have;
infile cards dsd;
input num;
cards;
1
;
run;
data want(rename=(num2=num));
set have;
num2 = put(num,8.);
drop num;
run;
The last time I did this, I didn't create a new table I just kept the old, so I wrote:
data oldtable;
set oldtable;
newvar=put(oldvar, 2.);
drop oldvar;
run;
(Actually I dropped the old variable in a different step because I needed it in another join.
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 the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.