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

First of all you need no quotes and commas:


%macro m_test(
 keyN= /* numeric key variables */
,keyC= /* character key variables */
);
data test;

  if 0 then set sashelp.cars;
  length FAKE_NUM 8 FAKE_CHAR $ 1;
  drop FAKE_NUM FAKE_CHAR;
  array a[*] FAKE_NUM &keyN.;
  array b[*] $ FAKE_CHAR &keyC.;

  declare hash found_keys();
    do i = 2 to dim(A);
      found_keys.definekey(vname(A[i]));
    end;
    do i = 2 to dim(B);
      found_keys.definekey(vname(B[i]));
    end;
    found_keys.definedone();

  do while (not done);
    set sashelp.cars end=done;
      rc=found_keys.add(); 
      output;              
  end;

  rc = found_keys.output(dataset:"test123");
  stop;
run;
%mend;

%m_test(keyC=Make Model, keyN=Invoice);

%m_test(keyN=Invoice);

%m_test(keyC=Make Model);

%m_test(keyC=Make);

 

Bart

_______________
Polish SAS Users Group: www.polsug.com and communities.sas.com/polsug

"SAS Packages: the way to share" at SGF2020 Proceedings (the latest version), GitHub Repository, and YouTube Video.
Hands-on-Workshop: "Share your code with SAS Packages"
"My First SAS Package: A How-To" at SGF2021 Proceedings

SAS Ballot Ideas: one: SPF in SAS, two, and three
SAS Documentation



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
  • 15 replies
  • 2778 views
  • 14 likes
  • 7 in conversation