DATA Step, Macro, Functions and more

Symput in function

Reply
Occasional Contributor
Posts: 18

Symput in function

I am trying to create a macro shortcut for use in a function.

DATA _null_ ;
CALL symput('num','1234567890');
RUN ;

Then later do this:
xxx = INDEX(city,&num.) ;

The code is not picking up the macro assignement. Any help?
Occasional Contributor
Posts: 18

Re: Symput in function

Posted in reply to paulsparrow
My bad. Needed INDEXC()
Super Contributor
Super Contributor
Posts: 3,174

Re: Symput in function

Posted in reply to paulsparrow
The SAS 9 (introduced) function ANYDIGIT may also work for you - with my test as compared to INDEXC, it was twice as fast over a large DO/END loop on Windows OS.

Scott Barry
SBBWorks, Inc.
Super Contributor
Posts: 474

Re: Symput in function

Posted in reply to paulsparrow
Try replacing:

INDEX(city,&num)

with:

INDEX(city,symget('num'))

You should also consider Scott's suggestions, ANYDIGIT might do the trick in a much simpler way.

Cheers from Portugal.

Daniel Santos @ www.cgd.pt
Super Contributor
Super Contributor
Posts: 3,174

Re: Symput in function

Posted in reply to DanielSantos
I believe the use of INDEX function is not equivalent to either INDEXC or ANYDIGIT. Also, if the OP was to use INDEX, the second argument must be character, so it would need to be enclosed in double-quotation marks to work properly.

Scott Barry
SBBWorks, Inc.
Ask a Question
Discussion stats
  • 4 replies
  • 146 views
  • 0 likes
  • 3 in conversation