Skip to content
9to5sas
  • Index
  • Glossary
Facebook Twitter Instagram Email RSS

  • Start Here
  • Base SAS
  • Advanced SASExpand
    • SAS Macros
    • PROC SQL
  • SAS/STATSExpand
    • SAS Analytics
    • Statistics
  • SAS Programs
9to5sas

9to5sas » ADVANCED SAS » SAS Macros » How to Use Character Values on a Macro %DO Loop?

How to Use Character Values on a Macro %DO Loop?

BySubhro Posted onAugust 23, 2022August 23, 2022 Last Updated:August 23, 2022
0 Comments

The macro facility does not permit character values on an iterative%DO loop. There are two macros shown below that circumvent this constraint….

The macro facility does not permit character values on an iterative%DO loop. There are two macros shown below that circumvent this constraint.

This post contains two macro techniques for iterating through character values on a macro %DO loop.

Character Values on a Macro Do Loop using %SCAN function

%macro iterm(lst);
 %let cnt=%sysfunc(countw(&lst));
  %do i = 1 %to &cnt;
   %put %scan(&lst,&i);
  %end;
%mend iterm;

%iterm(S A S);

Result:

Use Character Values on a Macro %DO Loop

The %SYSFUNC function is needed to use the SAS function CONTWW within the macro facility.

The macro variable named &cnt contains the number of characters or words returned by the COUNTW function.

The %SCAN function pulls off each character or word in the macro variable named &LST and uses the %PUT statement to write contents to the log.

Character Values on a Macro Do Loop using BYTE and RANK Function

An alternative approach to the above example is using the RANK and BYTE functions.

The BYTE returns one character in the ASCII collating sequence.

The RANK function returns the position of a character in the ASCII collating sequence.

%macro letters(beg,end);
%do i = %sysfunc(rank(&beg)) %to %sysfunc(rank(&end));
  %put %sysfunc(byte(&i));
%end;
%mend letters;

%letters(L,Q);

Result:

Use Character Values on a Macro %DO Loop

Every week we'll send you SAS tips and in-depth tutorials

JOIN OUR COMMUNITY OF SAS Programmers!

Check your inbox or spam folder to confirm your subscription.

Post Tags: #SAS macro Examples
Subhro

Subhro Kar is an Analyst with over five years of experience. As a programmer specializing in SAS (Statistical Analysis System), Subhro also offers tutorials and guides on how to approach the coding language. His website, 9to5sas, offers students and new programmers useful easy-to-grasp resources to help them understand the fundamentals of SAS. Through this website, he shares his passion for programming while giving back to up-and-coming programmers in the field. Subhro’s mission is to offer quality tips, tricks, and lessons that give SAS beginners the skills they need to succeed.

Facebook Twitter Linkedin

Post navigation

Previous Previous
How to Calculate a Weighted Average in SAS?
NextContinue
How to determine if the external file is empty in SAS?

SAS Tips in your inbox

Subscribe to 9to5sas for timely SAS tips and news delivered each month.
Learn about the latest articles, and code samples to keep your SAS skills fresh!

Your subscription is successful!

Recent Posts

  • Concatenate strings in SAS: The CAT Functions Demystified
  • 5 Techniques for Quickly Removing Leading Zeros in SAS
  • Troubleshoot Your Proc SQL Code Like a Pro with These 7 Automatic Macro Variables
  • 7 PROC SQL Options You Should Use to Debug Queries
  • How To Use The SAS Proc SQL Order By Statement?
9to5sas
  • Privacy Policy
  • Disclaimer
  • About
  • Contact
Facebook Twitter Instagram RSS Email Pinterest

Copyright © 2023 9TO5SAS, All rights reserved.

Scroll to top
  • 9to5sas Blueprint
  • About
  • About
  • Acceptable use policy
  • calculator
  • Confirm email
  • Contact
  • Contact
  • Cookie Policy
  • DISCLAIMER
  • Getting Started with SAS
  • Glossary
  • Index
  • Post #13801
  • Privacy Policy
  • Privacy policy
  • SAS Programs
  • Styles
  • Subscription confirmed
  • Terms and conditions
  • Thank You