BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
Batman
Quartz | Level 8

I have a macro array of formats, however the %scan function is dropping the "$" and ".", how can I get %scan to read those characters?

 

 

27 %put macro array of format values is &formats;
macro array of format values is $2. 8. $6. $55. DATETIME19. DATETIME19. $1.
28 %put fourth scanned format value is %scan(&formats,4);
fourth scanned format value is 55

1 ACCEPTED SOLUTION

Accepted Solutions
Quentin
Super User

Specify that %scan should only use a blank, %str( ) as the delimiter, e.g.:

1    %let formatlist=$2. 8. $6. $55. DATETIME19. DATETIME19. $1.  ;
2    %put %scan(&formatlist,4,%str( )) ;
$55.
The Boston Area SAS Users Group is hosting free webinars!
Next webinar will be in January 2025. Until then, check out our archives: https://www.basug.org/videos. And be sure to subscribe to our our email list.

View solution in original post

2 REPLIES 2
Quentin
Super User

Specify that %scan should only use a blank, %str( ) as the delimiter, e.g.:

1    %let formatlist=$2. 8. $6. $55. DATETIME19. DATETIME19. $1.  ;
2    %put %scan(&formatlist,4,%str( )) ;
$55.
The Boston Area SAS Users Group is hosting free webinars!
Next webinar will be in January 2025. Until then, check out our archives: https://www.basug.org/videos. And be sure to subscribe to our our email list.
ballardw
Super User

Read the friendly manual. The documentation for %scan includes this bit clearly showing that the $ character by default treated as a delimiter.

If you use the %SCAN function with only two arguments, then the default delimiters depend on whether your computer uses ASCII or EBCDIC characters.
  • If your computer uses ASCII characters, then the default delimiters are as follows:
    blank ! $ % & ( ) * + , - . / ; < ^¦
    In ASCII environments that do not contain the ^ character, the %SCAN function uses the ~ character instead.
  • If your computer uses EBCDIC characters, then the default delimiters are as follows:
    blank ! $ % & ( ) * + , - . / ; < ¬ | ¢¦

 

 

 

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 541 views
  • 2 likes
  • 3 in conversation