BookmarkSubscribeRSS Feed
anilgvdbm
Quartz | Level 8

Dear All ,

I'm getting the error in the following macros please can anyone  able to give any solution for this?

i attached screen shot also for your reference.

Thanks a lot..

Regards,

ANil

data finfage; merge _cinage (in=a) crefage (in=b); by sex _agecat;  if a;

326      ageint = _agemos2-_agemos1; dage=agemos- _agemos1;

327

328  array l0  _llg  _mlg  _slg  _lht  _mht  _sht  _lwt  _mwt  _swt _lhc  _mhc  _shc  _lbmi

328! _mbmi  _sbmi;

329  array l1 _llg1 _mlg1 _slg1 _lht1 _mht1 _sht1 _lwt1 _mwt1 _swt1 _lhc1 _mhc1 _shc1 _lbmi1

329! _mbmi1 _sbmi1;

330  array l2 _llg2 _mlg2 _slg2 _lht2 _mht2 _sht2 _lwt2 _mwt2 _swt2 _lhc2 _mhc2 _shc2 _lbmi2

330! _mbmi2 _sbmi2;

331  do over l0; l0= l1 + (dage * (l2 - l1)) / ageint; end;

332

333  if agemos < 24 then _mbmi=.; *theres a valid value for 23.5 months! ;

334

335  %_zscore(length, _llg, _mlg, _slg, lgz, lgpct, _Flenz);

    -

    180

WARNING: Apparent invocation of macro _ZSCORE not resolved.

ERROR 180-322: Statement is not valid or it is used out of proper order.

336      %_cuts(_flenz, _bivlg, -5, 3);

337  %_zscore(height, _lht, _mht, _sht, stz, stpct, _Fstatz);

    -

    180

WARNING: Apparent invocation of macro _ZSCORE not resolved.

ERROR 180-322: Statement is not valid or it is used out of proper order.

338      %_cuts(_fstatz, _bivst, -5, 3);

339  %_zscore(weight, _lwt, _mwt, _swt, waz, wapct, _Fwaz);

    -

    180

WARNING: Apparent invocation of macro _ZSCORE not resolved.

ERROR 180-322: Statement is not valid or it is used out of proper order.

340      %_cuts(_fwaz, _bivwt, -5, 5);

341  %_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz);

    -

    180

WARNING: Apparent invocation of macro _ZSCORE not resolved.

ERROR 180-322: Statement is not valid or it is used out of proper order.

342      %_cuts(_fheadcz, _bivhc, -5, 5);

343  %_zscore(bmi, _lbmi, _mbmi, _sbmi, bmiz, bmipct, _Fbmiz);

    -

    180

WARNING: Apparent invocation of macro _ZSCORE not resolved.

ERROR 180-322: Statement is not valid or it is used out of proper order.

2 REPLIES 2
Reeza
Super User

If you're trying to call a macro from within a data step and use values from the data step then you need to use call execute instead of %.

See the second example.

In general, create a text string that has the %_cuts(...) and then pass that to call execute.

Tom
Super User Tom
Super User

The error message is saying that the macro that is being called is not defined.

Is this code you wrote yourself?  Where is the code that defines the macro?

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to choose a machine learning algorithm

Use this tutorial as a handy guide to weigh the pros and cons of these commonly used machine learning algorithms.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 1093 views
  • 0 likes
  • 3 in conversation