BookmarkSubscribeRSS Feed
mj5
Obsidian | Level 7 mj5
Obsidian | Level 7

can i make format of character value which has relation to numeric value.

 

DATA temp1;
     input subj 1-4 num_val 6 result $8-20 ;
     DATALINES;
1024 1 manual 
1167 1 manual 
1168 2 testing 
1201 2 testing 
1302 3 plain
1302 4 natural
  ;
RUN;

in the above program i want to use num_val  to get right order and at last want to call result to get the char value.

Can i create a format or one to one relation in the code and call it when needed?

4 REPLIES 4
art297
Opal | Level 21

Not exactly sure what you're asking but, if it's just how to create a format from that dataset:

ATA temp1;
  input subj 1-4 num_val 6 result $8-20 ;
  DATALINES;
1024 1 manual 
1167 1 manual 
1168 2 testing 
1201 2 testing 
1302 3 plain
1302 4 natural
;

data fmtdata;
  set temp1 (rename=(num_val=start result=label));
  by start;
  retain fmtname 'ncodes' type 'N';
  if first.start;
run;

proc format cntlin = fmtdata;
run;

Art, CEO, AnalystFinder.com

 

mj5
Obsidian | Level 7 mj5
Obsidian | Level 7

How to call this format in data step. I tried calling by format 

format num_val $ncodes.; 

but it doesnt work.

Any clue? 

Patrick
Opal | Level 21

@mj5

If you're using @art297's code then the format is numeric with name ncodes - no $ required.

format num_val ncodes.; 

 

Patrick
Opal | Level 21

@mj5

Yes, that's one of the main purposes of formats. You apply them the values so that they print/display formatted.

Just define the format like:

proc format;
  value myformat
    1='manual'
    2='testing'
    ....
    ;
run;

You then can apply the format like:

DATA temp1;
     input subj 1-4 num_val 6 result $8-20 ;
     format num_val myformat.;
     DATALINES;
1024 1 manual 
....
;
run;

In doing so you will see the formatted values when "looking at them" but the internal values are still 1, 2, 3... and that's what you have to use in your SAS code for selections and the like.

sas-innovate-2024.png

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.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 741 views
  • 2 likes
  • 3 in conversation