Help using Base SAS procedures

How do I convert a format into a string value?

Accepted Solution Solved
Reply
Contributor
Posts: 58
Accepted Solution

How do I convert a format into a string value?

So this is what I have right now

proc format;

  value namefmt 1="Experiment" 2="Control";

run;

data have;

input name  count;

datalines;

1 16

2 8

;

run;

data have;

set have;

format name namefmt.;

run;

data want;

set have;

wantvar=name||" (N="||count||")";

run;

So in my want database, my wantvar is showing up as "1 (N=          16)", where I want it to actually show up as "Experiment (N=16)".

How can I get it to show the formatted value and not the actual value without creating a new variable?


Accepted Solutions
Solution
‎01-08-2015 01:25 PM
Super User
Posts: 11,343

Re: How do I convert a format into a string value?

To remove the space before the number on way:

wantvar=put(name,namefmt.)||" (N="||strip(count)||")";

View solution in original post


All Replies
Trusted Advisor
Posts: 1,228

Re: How do I convert a format into a string value?

data want;

set have;

wantvar=put(name,namefmt.)||" (N="||count||")";

run;

Trusted Advisor
Posts: 1,301

Re: How do I convert a format into a string value?

proc format;

  value namefmt 1="Experiment" 2="Control";

run;

data have;

input name count;

want=catx(' ', put(name, namefmt.), cats('(N=', count, ')'));

datalines;

1 16

2 8

;

proc print;

run;

Solution
‎01-08-2015 01:25 PM
Super User
Posts: 11,343

Re: How do I convert a format into a string value?

To remove the space before the number on way:

wantvar=put(name,namefmt.)||" (N="||strip(count)||")";

Super Contributor
Posts: 340

Re: How do I convert a format into a string value?

Try: Wantvar=Catt(Put(Name,namefmt.),' N=(',Count,')'); * I guess the others were much quicker though ..;

Valued Guide
Posts: 860

Re: How do I convert a format into a string value?

Tpham, you will want to use a put function:

proc format;

value $namefmt 1="Experiment" 2="Control";

run;

data have;

Input name $  count;

datalines;

1 16

2 8

;

run;

data want;

format name $ namefmt.;

set have;

wantvar= catx('',put(name,namefmt.),'(N=',count,')');

run;

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

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