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?
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
That's not valid SAS code to start with...
As always, see the documentation or search at lexjansen.
http://www.lexjansen.com/search/searchresults.php?q=Intro%20to%20proc%20sql
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
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;
proc sql; create table test as select case when myvar= 'N' then 'LCY' when myvar = 'Y' then 'FCY' end as newvar from table ;quit;
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.
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.