- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
With SAS 9.4M5 I can now submit %IF statement in open code.
When did this become valid? I cannot find a reference any where.
Note that it requires that you use a %DO/%END block as the statement to run in the %THEN or %ELSE clause.
74 * test macro if in open code; 75 %if (1=1) %then %do; 76 proc print data=sashelp.class; run; NOTE: There were 19 observations read from the data set SASHELP.CLASS. NOTE: PROCEDURE PRINT used (Total process time): real time 0.05 seconds cpu time 0.05 seconds 77 %end; 78 %else %do; %put False; %end; 79 80 * test macro do in open code ; 81 %do i=1 %to 3 ; ERROR: The %DO statement is not valid in open code. 82 %put &=i ; WARNING: Apparent symbolic reference I not resolved. i 83 %end; ERROR: The %END statement is not valid in open code.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Not working in SAS 9.4 TS1M2
But an exciting find nonetheless.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Not working in SAS 9.4 TS1M4
Paige Miller
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
not working for SAS9.4M4 😕
is working in SAS9.4M5 (y)
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Quite obviously something new with 9.4M5. Checked it here on AIX.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Good find!
Blog post here:
Thanks to @Tom for the nudge.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I would have expected to see such an important change in the "What's new in SAS 9.4" guide. As of now, I couldn't find it there.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@Kurt_Bremser wrote:
I would have expected to see such an important change in the "What's new in SAS 9.4" guide. As of now, I couldn't find it there.
I agree. The fact that many experts in this thread were not aware of this change is surprising, in the sense that SAS did not publicize this as much as I think they should have.
What's next? IML language allowed in a data step? SQL language allowed in PROC GLM? Lights at Wrigley Field?
Paige Miller
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I would expect iterative %DO in open code.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Does the same work in SAS Enterprise Guide version 7.1?
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@Monk wrote:
Does the same work in SAS Enterprise Guide version 7.1?
It depends on what version of SAS your session is using. I am not sure if there is menu item in EG to find out, but you could just ask SAS to tell you by checking the SYSVLONG automatic macro variable.
744 %put &sysvlong; 9.04.01M5P091317
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
In EG, right-click on the opened server in the server list, select Properties, then Software.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@Monk wrote:
Does the same work in SAS Enterprise Guide version 7.1?
The EG version does not matter. You need SAS 9.4M5 in the backend.