BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Tal
Pyrite | Level 9 Tal
Pyrite | Level 9

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?

1 ACCEPTED SOLUTION

Accepted Solutions
Astounding
PROC Star

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.

View solution in original post

5 REPLIES 5
dcruik
Lapis Lazuli | Level 10

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!

Astounding
PROC Star

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.

Tal
Pyrite | Level 9 Tal
Pyrite | Level 9

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 Smiley Happy

Thank you all guys for the  quick  reponse

Steelers_In_DC
Barite | Level 11

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;

jsasusr
Fluorite | Level 6

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. 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

What is Bayesian Analysis?

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 5 replies
  • 2700 views
  • 6 likes
  • 5 in conversation