SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
afiqcjohari
Quartz | Level 8

in data step

 

The following will create a new variable newvar based on myvar and drop myvar

 

data newtable(drop = myvar);
   length newvar %5;
   set table;
   if myvar = N then newvar = No
   if myvar = Y then newvar = Yes
run;

How can I replicate this in SAS proc sql?

 

1 ACCEPTED SOLUTION

Accepted Solutions
art297
Opal | Level 21
proc sql;
  create table newtable as
    select case(myvar)
      when ('N') then 'No'
      when ('Y') then 'Yes'
     end as newvar length=5
       from table
  ;
  quit;

Art, CEO, AnalystFinder.com

 

View solution in original post

6 REPLIES 6
afiqcjohari
Quartz | Level 8
That lexjansen is going to be very useful. Thanks Reeza!
art297
Opal | Level 21
proc sql;
  create table newtable as
    select case(myvar)
      when ('N') then 'No'
      when ('Y') then 'Yes'
     end as newvar length=5
       from table
  ;
  quit;

Art, CEO, AnalystFinder.com

 

afiqcjohari
Quartz | Level 8
Ok, I missed the length option. Thanks!
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Hi,

 

Just to add, when doing binary choices such as this its useful to use ifn/ifc functions to shrink the code (note this would not work for pass-through):

data newtable;
  set table;
  newvar=ifc(myvar="N","No","Yes");
run;

proc sql;
  create table NEWTABLE as
  select  ifc(MYVAR="N","No","Yes") as NEWVAR
  from    TABLE;
quit;
afiqcjohari
Quartz | Level 8
proc sql;
create table test as
select case
when myvar= 'N' then 'LCY'
when myvar = 'Y' then 'FCY'
end as newvar
from table
;quit;

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 6 replies
  • 51581 views
  • 4 likes
  • 4 in conversation