🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 03-14-2017 12:04 AM
(51580 views)
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
6 REPLIES 6
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
That lexjansen is going to be very useful. Thanks Reeza!
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Ok, I missed the length option. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
proc sql; create table test as select case when myvar= 'N' then 'LCY' when myvar = 'Y' then 'FCY' end as newvar from table ;quit;