BookmarkSubscribeRSS Feed
Lopa2016
Fluorite | Level 6

I am trying to use the set statement for multiple datasets in one shot namely I have datasets vmoreranked1,vmoreranked2,vmoreranked3,...But constantly getting an error

 data stackorig;
set vmoreranked1-vmoreranked&vmcnt; run;
                  -
                  22

ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, (, ;, END, KEY, KEYS, NOBS, OPEN, POINT, DATA, LAST, NULL.

NOTE: The SAS System stopped processing this step because of errors.

Can someone help?

4 REPLIES 4
Reeza
Super User

What version of SAS do you have? This type of syntax is valid in SAS 9.3+

SASKiwi
PROC Star

This may be caused by &vmcnt not resolving correctly. Check by replacing this with a number like 2 just to see if it fixes the problem.

Astounding
PROC Star

My guess:  &VMCNT was created by PROC SQL and thus includes leading blanks.  The easiest way to overcome this is to add this statement before the DATA step:

 

%let vmcnt = &vmcnt;

 

Alternatively (depending on how much subsequent processing has taken place), you might be able to use &SQLOBS instead of &VMCNT.

Jagadishkatam
Amethyst | Level 16
I agree with @Astounding, may be there are leading blank spaces in the macro variable vmcnt, so try to use %cmpres function which will remove the blank if any.

data stackorig;
set vmoreranked1-vmoreranked%cmpres(&vmcnt);
run;
Thanks,
Jag

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 4 replies
  • 1554 views
  • 3 likes
  • 5 in conversation