NOTE: Do not download macros from a browser window because the browser might change some of the text where it encounters ampersands (very common in the macro code). Either download from the browser "Source" window or use the download page to download the zips.
Shortcut to utility macros
Avoiding "collisions" with Spectre macros
Note that timestamps shown below may not have been updated for a month. Correct timestamps are shown on the updates page.
May 29 13:15 aetab.sas
Jul 30 2007 allocr.sas Jul 30 2007 allocw.sas Jun 15 2013 blflag.sas Jan 2 16:40 blflagdtcm1.sas May 1 06:54 comblvls.sas Mar 15 2013 dosemerge.sas May 1 06:54 freqlvls.sas Dec 5 2011 labncfb.sas Mar 15 2013 locf.sas Mar 15 2013 nodata.sas May 1 06:55 npctpvals.sas May 29 14:21 npcttab.sas Sep 14 2014 popfmt.sas May 1 06:56 prntlvls.sas May 1 06:56 rgpp.sas May 1 06:56 trnslvls.sas Apr 21 2013 unicat2word.sas May 1 06:57 unicatrep.sas Apr 21 2013 unimap.sas May 1 06:57 unipvals.sas Apr 21 2013 unistatlabel.sas May 29 14:18 unistats.sas |
Index of members in this directory with standard headers
======================================================== (this list was generated by the crindex script) aetab.sas - To create a multi-level AE table of counts and percentages Usage: %aetab(ae3,msoc mhlgt mhlt mpt aeint) %aetab(dsin=ae3,varlist=msoc mhlgt mhlt mpt aeint)
%aetab(dsin=ae3,varlist=msoc mhlgt mhlt mpt aeint,trtalign=center,
allocr.sas
- Spectre (Clinical) example macro to allocate data libraries and
Usage: %allocr
allocw.sas
- Spectre (Clinical) example macro to allocate data libraries and
Usage: %allocw blflag.sas - Clinical reporting utility macro to flag baseline observations.
Usage: %blflag(dsin=test,dsout=flagged,blflagvar=blf,blset="Y",
blflagdtcm1.sas
- Clinical reporting utility macro to flag baseline observations
Usage: %blflagdtcm1(dsin=test,dsout=flagged,blflagvar=blf,blset="Y",
comblvls.sas - To combine levels data from the %freqlvls macro Usage: %comblvls(dsin=myds,lvls=5,varlen=256,colw=50) dosemerge.sas - Clinical reporting macro to merge dose in with date
Usage:
freqlvls.sas - To give frequency counts by category and sub-category levels
Usage: %freqlvls(sashelp.cars,make type model,trtvar=origin,
labncfb.sas - To produce a table of lab (normalized) change from baseline
Usage: options nocenter nobyline;
%labncfb(inlab=lab,inpopu=popu,popu=TS,intrt=gentrt,analno=3,
locf.sas
- Clinical reporting macro to perform "Last Observation Carried
Usage:
nodata.sas - To produce a "No Data" report
Usage: %if not %nobs(dset) %then %do;
npctpvals.sas
- Clinical reporting macro that calculates p-values for the
Usage: %npctpvals(dsin=data1,byvars=byvar1 byvar2,trtvar=trtgrp,
npcttab.sas
- Clinical reporting macro to produce tables showing "n", the
Usage: See tutorial with demonstrations on the Spectre web site. After
popfmt.sas
- Clinical reporting macro to create a treatment format that is the
Usage: %popfmt(stat.acct(where=(xxx=1 and &_pop_.cd=1)),trtgroup)
prntlvls.sas - To print data created by the %freqlvls and %comblvls macros Usage: %prntlvls(dsin=myds,lvls=5,trtvars=TRT1 TRT2,colw=40) rgpp.sas - Create html graphical patient profiles Usage: %rgpp trnslvls.sas - To transpose levels data from the %freqlvls macro
Usage: %trnslvls(dsin=myds,lvls=5,trtvar=trtarm,trtord=99,prefix=TRT,
unicat2word.sas
- Clinical reporting macro to produce a Word-style cell table
Usage: %unicat2word(dsin=_unitran,dest=print,dlim=';')
unicatrep.sas
- Clinical reporting macro to produce a report from the dataset
Usage: %unicatrep(dsin=_unitran)
unimap.sas
- Function-style clinical reporting macro to map proc univariate
Usage: %let stats=%unimap(&labels); unipvals.sas
- Clinical reporting macro to calculate statistics values and
Usage: %unipvals(dsin=means,dsout=out,trtvar=tmt,respvar=val,type=N)
unistatlabel.sas - To replace _statlabel values in the %unistats output dataset Usage: N/A unistats.sas
- Clinical reporting macro to calculate proc univariate
Usage: See tutorial with demonstrations on the Spectre web site. After
|
May 8 2011 allocr.sas
May 8 2011 allocw.sas Oct 12 2009 autoexec.sas May 8 2011 closerep.sas May 8 2011 crprotds.sas May 8 2011 crtitlesds.sas May 8 2011 ctitlepgmrk.sas May 8 2011 jobinfo.sas May 8 2011 layout2lsps.sas May 8 2011 openrep.sas May 8 2011 pagexofy.sas May 8 2011 proginfo.sas May 8 2011 protinfo.sas May 8 2011 titlegen.sas May 8 2011 titles.sas May 8 2011 xytitles.sas |
Index of members in this directory with standard headers
======================================================== (this list was generated by the crindex script) allocr.sas
- Spectre (Clinical) example macro to allocate data libraries and
Usage: %allocr
allocw.sas
- Spectre (Clinical) example macro to allocate data libraries and
Usage: %allocw
closerep.sas
- Spectre (Clinical) macro to close the temporary file created
Usage: Should be used with the %titles and %openrep macros as below.
%allocr
crprotds.sas
- Spectre (Clinical) macro to create a protocol dataset from a
Usage: %crprotds(flatfile,der.study)
crtitlesds.sas
- Spectre (Clinical) macro to create a titles dataset from a
Usage: %crtitlesds(flatfile,der.titles)
ctitlepgmrk.sas
- Spectre (Clinical) macro to create a centered top title with a
Usage: %ctitlepgmrk("centred title")
jobinfo.sas
- Spectre (Clinical) macro to store important job information in
Usage: %jobinfo
layout2lsps.sas
- Spectre (Clinical) macro to calculate sas linesize and pagesize
Usage: %layout2lsps(lmargin=1.0,rmargin=0.75,tmargin=1.0,bmargin=1.0,
openrep.sas
- Spectre (Clinical) macro to redirect print output to a
Usage: Should be used with the %titles and %closerep macros as below.
%allocr
pagexofy.sas
- Spectre (Clinical) macro to add "Page x of Y" labels where
Usage: %pagexofy(myfile.lst)
proginfo.sas
- Spectre (Clinical) macro to store important program information
Usage: %proginfo
protinfo.sas
- Spectre (Clinical) macro to store important protocol information
Usage: %protinfo
titlegen.sas
- Spectre (Clinical) macro to generate titles and footnotes from a
Usage: %titlegen(dsname)
titles.sas
- Spectre (Clinical) macro to create the titles and footnotes for
Usage: Should be used with the %openrep and %closerep macros as below.
%allocr
xytitles.sas
- Spectre (Clinical) macro to finish creating the header lines
Usage: Must be called from within the %titles macro and must not be
|
May 4 2011 addautos.sas
May 4 2011 adddecodevars.sas Jan 29 2012 adjfmt.sas May 4 2011 after.sas May 4 2011 age.sas May 4 2011 agedec.sas May 4 2011 aligndp.sas May 26 2014 allafter.sas May 26 2014 allafterc.sas Apr 13 2011 allfmtvals.sas May 4 2011 alluniq.sas Aug 23 2012 appmvar.sas May 4 2011 attrc.sas May 4 2011 attrn.sas May 4 2011 attrv.sas May 4 2011 bydrop.sas May 4 2011 bytitle.sas Jan 11 2013 capmac.sas May 4 2011 capvar.sas May 4 2011 casestrmac.sas May 4 2011 casestrvar.sas Oct 5 05:47 char2num.sas May 11 2011 checkv6.sas May 4 2011 chkuniq.sas May 4 2011 chompw.sas Nov 2 2011 clashlibs.sas Nov 2 2011 clashvars.sas May 4 2011 clength.sas Mar 20 2014 cmd2ds.sas Mar 20 2014 cmd2sas.sas Jun 14 2013 combine.sas Jun 18 2014 combpath.sas Feb 11 2012 comma2andmac.sas Feb 11 2012 comma2andvar.sas Jun 17 2014 commaparms.sas Jun 17 2014 commaparmsu.sas May 4 2011 commas.sas May 8 2011 complibs.sas Nov 8 2011 compvars.sas Oct 3 11:49 cont2dict.sas May 4 2011 crdte.sas May 1 2014 cvarlens.sas Sep 28 2008 datanulldemo.sas May 4 2011 delhex.sas Apr 5 2011 delifexist.sas Jul 20 2012 delmac.sas May 4 2011 delzero.sas May 4 2011 dequote.sas Apr 25 2013 dir.sas Mar 20 2014 dir2ds.sas Apr 25 2013 dir2sas.sas Mar 20 2014 dirfp2ds.sas Apr 25 2013 dirfp2sas.sas Apr 25 2013 dirfpq.sas Jul 7 2014 dlm2sas.sas Jun 9 2011 doallitem.sas Nov 15 2011 dosfdasize.sas Nov 15 2011 dosfilesize.sas May 27 2014 dq2sq.sas May 27 2014 dq2sqnc.sas Apr 16 2013 dropend.sas Jun 11 2013 dropmodifiers.sas Jun 14 2013 dropmodifmac.sas Nov 4 20:30 dropstartwords.sas Nov 4 20:41 dropstartwordsm.sas May 4 2011 dropvars.sas Mar 20 2014 ds2tabdlm.sas May 4 2011 dsall.sas Apr 2 2013 dsattr.sas May 8 2011 dsattrib.sas May 4 2011 dslabel.sas May 4 2011 dslist.sas May 6 2013 dsplit.sas May 4 2011 dtscale.sas May 4 2011 duplvars.sas Nov 1 2012 editlist.sas May 4 2011 endwith.sas Jul 25 2011 env2ds.sas Jul 25 2011 env2dsw7.sas Mar 20 2014 env2sas.sas Mar 20 2014 env2sasw7.sas May 4 2011 eqsuff.sas May 4 2011 equals.sas Jun 20 2014 fencoding.sas Apr 29 2014 findinhash.sas Feb 27 2014 fixiso8601.sas May 4 2011 fixnames.sas May 8 2011 fixvars.sas May 4 2011 flatten.sas May 4 2011 fmtord.sas Apr 13 2011 fmtpath.sas May 4 2011 fmts2fda.sas Jul 4 2013 getfmts.sas Sep 19 2011 gettitles.sas Sep 15 2012 getvalue.sas Feb 22 2014 getvaluems.sas Sep 15 2012 getvalueq.sas May 4 2011 globexist.sas May 4 2011 globlist.sas May 4 2011 hasvars.sas Jun 21 2013 hasvarsc.sas Jun 21 2013 hasvarsn.sas May 2 2013 hexchars.sas May 4 2011 hexcnt.sas Nov 27 2012 int2num.sas Dec 14 2012 isodatepart.sas Dec 14 2012 isodttm.sas Dec 14 2012 isoformats.sas Dec 14 2012 isotimepart.sas Jul 26 2011 killsas.sas Jul 26 2011 killsess.sas Mar 6 2012 ksplitvar.sas May 4 2011 lafootnote.sas May 4 2011 latitle.sas May 4 2011 lcralign.sas May 4 2011 liblist.sas May 4 2011 ljustify.sas Jun 1 2014 look4lwork.sas May 4 2011 lookahead.sas May 4 2011 lrafootnote.sas May 4 2011 lratitle.sas Mar 20 2014 ls2ds.sas Apr 23 2013 ls2sas.sas Aug 24 2013 lscmd.sas Mar 20 2014 lsfp2ds.sas Apr 23 2013 lsfp2sas.sas Jun 26 2011 lsfpq.sas Mar 20 2014 lslist2ds.sas Mar 20 2014 lslist2sas.sas Apr 2 2013 lstattrib.sas Jan 19 2012 lstlbls.sas May 4 2011 ltgtm1.sas May 1 2014 makehash.sas Jun 21 2013 match.sas May 4 2011 maxtitle.sas Aug 12 2011 md5sum.sas Apr 9 2013 misscnt.sas Jan 19 2012 missvars.sas Jun 19 2014 mkdir.sas Jun 20 2013 mkformat.sas Oct 26 2011 mkordinfmt.sas Jul 1 2014 mksharemac.sas May 4 2011 modte.sas May 4 2011 mtype.sas May 4 2011 mvarlist.sas May 4 2011 mvarvalues.sas May 28 2014 mysasautos.sas May 4 2011 nlobs.sas May 4 2011 nobs.sas May 27 2014 nocommas.sas May 4 2011 nodup.sas May 4 2011 nodupkey.sas May 4 2011 noquotes.sas Mar 19 2013 now.sas Oct 6 15:53 num2char.sas Oct 5 05:47 numchars.sas May 4 2011 nvars.sas May 4 2011 nvarsc.sas May 4 2011 nvarsn.sas Apr 2 2013 optlength.sas Apr 4 2013 optvarlen.sas May 4 2011 partialdates.sas Jun 12 2011 prefix.sas May 4 2011 printall.sas Aug 21 23:57 printit.sas Feb 1 2011 prxnames.sas May 4 2011 putvars.sas Sep 23 2011 qcompress.sas Nov 16 2011 qdequote.sas May 4 2011 qdosfileinfo.sas May 4 2011 qgetenv.sas Sep 23 2011 qreadpipe.sas May 4 2011 quotecnt.sas May 4 2011 quotelst.sas May 4 2011 quotescan.sas May 4 2011 rafootnote.sas May 4 2011 rannomac.sas May 4 2011 ratitle.sas Mar 20 2014 rcmd2ds.sas Aug 12 2011 rcmd2log.sas Aug 12 2011 rcmd2mvar.sas Mar 20 2014 rcmd2sas.sas May 4 2011 readfile.sas May 4 2011 remove.sas Dec 5 2012 removew.sas Feb 12 2011 rename8.sas May 4 2011 replhex.sas Nov 14 10:32 revfmt.sas Jun 12 2011 rinclude.sas May 4 2011 round.sas Jul 1 2014 rsubmitter.sas May 4 2011 rxmatch.sas Apr 25 2013 samevars.sas Oct 5 09:02 samplevars.sas Oct 15 2011 sas2tabdlm.sas Aug 10 2012 sas2xpt.sas Jun 14 2011 savopts.sas Mar 25 2013 scandlm.sas Sep 19 2011 scanfile.sas Feb 22 2014 scanlog.sas Mar 26 2013 sep2sp.sas Aug 24 2012 sep2u.sas May 4 2011 showhex.sas May 4 2011 sortedby.sas May 8 2011 splitmac.sas Mar 6 2012 splitvar.sas Apr 30 2013 sqlsamevars.sas Jan 20 21:26 stdtc.sas May 4 2011 substrw.sas Jun 12 2011 suffix.sas May 4 2011 supasort.sas Oct 10 2012 superql.sas May 4 2011 sysfmtlist.sas May 2 2013 termstr.sas May 27 2014 therest.sas May 4 2011 titlelen.sas Apr 20 2013 unfmt2mvar.sas May 8 2011 v_macros.sas Sep 9 2011 var2mvar.sas May 4 2011 varfmt.sas May 4 2011 varinfmt.sas May 4 2011 varlabel.sas May 4 2011 varlen.sas May 1 2014 varlens.sas May 1 2014 varlist.sas May 4 2011 varlistc.sas May 4 2011 varlistn.sas May 4 2011 varnum.sas Nov 27 2012 vars2num.sas May 4 2011 vartype.sas May 4 2011 vaxis.sas May 4 2011 verifyb.sas Jun 28 2013 views2data.sas May 4 2011 vwlist.sas May 4 2011 windex.sas Aug 24 2012 worddate.sas Aug 24 2012 worddateu.sas Jan 9 2013 words.sas Sep 14 23:01 xl2sas.sas Sep 14 23:04 xlblocks.sas Sep 14 23:07 xlsheets.sas Feb 2 2011 xpt2sas.sas May 4 2011 yrcutoff.sas May 4 2011 zerogrid.sas |
Index of members in this directory with standard headers
======================================================== (this list was generated by the crindex script) addautos.sas - To concatenate a macro library onto the sasautos path
Usage: %addautos(mymacros)
adddecodevars.sas - To add decode variables where a user format is specified
Usage: %adddecodevars(dsin=ds1,dsout=ds2)
adjfmt.sas
- To create a format based on a current format that can be
Usage: %adjfmt(agernge,adjrnge,indent=4)
after.sas
- Function-style macro to give you what comes directly after a
Usage: %let width=%after(&str,%str(width=),%str( w=));
age.sas
- In-datastep function-style macro to calculate the age of a person
Usage: data test;
agedec.sas
- In-datastep function-style macro to calculate the age of a person
Usage: data test;
aligndp.sas
- In-datastep macro to create a string from a numeric value with
Usage: %aligndp(numvar,charvar,4);
allafter.sas
- Function-style macro to give you everything following a target
Usage: %let rest=%allafter(&str,xx);
allafterc.sas
- Function-style macro to give you everything following any found
Usage: %let rest=%allafterc(&str,\/);
allfmtvals.sas - Create a dataset with every start value of a format in it
Usage: %allfmtvals(fmt=$country,var=country,dsout=temp1,length=2)
alluniq.sas
- To create a dataset with all unique occurences of a variable
Usage: %alluniq(in,subject,allsubj)
appmvar.sas
- Function-style macro to append a string onto an existing macro
Usage: %let err_msg=%appmvar(err_msg,This is another error message);
attrc.sas - Function-style macro to return a character attribute of a dataset
Usage: %let dslabel=%attrc(dsname,label);
attrn.sas - Function-style macro to return a numeric attribute of a dataset
Usage: %let nobs=%attrn(dsname,nlobs);
attrv.sas - Function-style macro to return a variable attribute
Usage: %let vartype=%attrv(dsname,varname,vartype);
bydrop.sas - To drop by-group residuals
Usage: %bydrop(dsin,by1 by2)
bytitle.sas
- To drop the last title if it is a "by" title and write it to the
Usage: %bytitle
capmac.sas
- Function-style macro to capitalise the first letter of each
Usage: %let tidy=%capmac(%bquote(A, B AND C'S RESULTS));
capvar.sas - In-datastep macro to tidy case of text in a variable
Usage: data lparmcd;
casestrmac.sas
- Function-style macro to force mixed case forms of a string into
Usage: %let newtext=%casestrvar(&oldtext,Roland); casestrvar.sas
- In-datastep macro to force mixed case forms of a string into the
Usage: data test2;
char2num.sas - To "effectively" convert a list of character variables to numeric
Usage: %char2num(test,test2,char1 char2 char3 char4)
checkv6.sas - Check a dataset for Version 6 compatibility
Usage: %checkv6(sasuser.myds);
chkuniq.sas - To check for uniqueness in key variables.
Usage: %chkuniq(dsname)
chompw.sas
- Function-style macro to cut out a word from a macro string and
Usage: %let str2=%chompw(&str1,&target,2,0,casesens=yes);
clashlibs.sas
- To identify where there is a clash of variable characteristics for
Usage: %clashlibs(myds)
clashvars.sas
- To identify where there is a clash of variable characteristics for
Usage: %clashvars(mylib)
clength.sas
- To create a length statement to unify character lengths in a list
Usage: %clength(ds1 ds2 ds3);
combine.sas - To combine datasets based on merge variables
Usage: %let mrgvars=study ptno;
combpath.sas
- Function-style macro to append a path extension onto a base path
Usage: %let path=aaa\bbb\cc\dhh/jj;
commaparms.sas
- Function-style macro to add back commas between macro parameters
Usage: %let params=%commaparms(%nrbquote(&str));
commaparmsu.sas
- Function-style macro to add back commas between macro parameters
Usage: %let params=%commaparmsu(%nrbquote(&str));
commas.sas
- Function-style macro to separate the elements of a list with
Usage: order by %commas(&var1 &var2 &var3);
complibs.sas - To "proc compare" identically-named datasets in two libraries
Usage: %complibs(base,comp)
compvars.sas
- To compare the differences in variables present in two datasets
Usage: %let ds1=dataset1;
cont2dict.sas
- To change proc contents output variable characteristics to match
Usage: %cont2dicd(_mydset,_mycont);
crdte.sas
- Function-style macro to return the creation datetime stamp of a
Usage: %let crdte=%crdte(dsname);
cvarlens.sas
- Function-style macro to return a list of character variables with
Usage: data test;
datanulldemo.sas
- Clinical reporting sample code to do a stacked-column report using
Usage: Ordinary SAS code.
delhex.sas - To delete occurrences of a specified hex character in a flat file.
Usage: %delhex(infile,outfile,'FE'x)
delifexist.sas - To delete a dataset if it exists
Usage: %delifexist(sasuser.myds)
delzero.sas
- To delete all datasets in a library with zero observations. This
Usage: %delzero(work) dequote.sas
- Function-style macro to remove front and end matching quotes
Usage: %let str=%dequote(%qreadpipe(echo '%username%')); dir2sas.sas - To write a list of windows file names to a sas dataset Usage: %dir2sas(\\Client\C$\MYLIB\*.txt); dirfp2sas.sas - To write a list of windows full path file names to a sas dataset Usage: %dirfp2sas(\\Client\C$\MYLIB\*.txt); dir.sas
- Function-style macro to return a list of members of a directory
Usage: %let dirlist=%dir(C:\utilmacros);
dirfpq.sas
- Function-style macro to return a list of full-path quoted members
Usage: %let dirlist=%dirfpq(C:\utilmacros); %*-
NO GOOD -;
dlm2sas.sas
- To read in a delimited flat file and convert it to a sas dataset
Usage: data fix;
%dlm2sas(C:\Users\rashleig\Downloads\xxxxx.txt,test,
doallitem.sas - To execute code for each item in a space-delimited list
Usage: %doallitem(dsa dsb dsc,'proc sort data=&item;by var;run;');
dosfdasize.sas
- Function-style macro to check a dataset size and obs count against
Usage: %if %dosfdasize(dset) EQ NOTOK %then %do; dosfilesize.sas
- Function-style macro to return a DOS file size or a sas dataset
Usage: %let filesize=%dosfilesize(C:\spectre\unistats.html);
dq2sq.sas - Function-style macro to translate double quotes to single quotes
Usage: rsubmit wait=no process1 inheritlib=(work=lwork)
dq2sqnc.sas
- Function-style macro to translate double quotes to single quotes
Usage: rsubmit wait=no process1 inheritlib=(work=lwork)
dropend.sas
- Function-style macro to drop the end of a string along with the
Usage: %let str=aaa\bbb\cccc\ddddd\eeee\pgm;
%let str=aaa/bbb/cccc/ddddd/eeee/pgm;
dropmodifiers.sas
- In-datastep macro to remove the dataset modifiers from a variable
Usage: data test;
dropmodifmac.sas
- Function-style macro to return a string with dataset modifiers
Usage: %let str=ds1(where=(a=:")" and b=:')')) lib.ds2(drop = v1 v2);
dropstartwords.sas
- In-datastep function-style macro to drop any of a list of words
Usage: %macro noifwhere(str);
data _null_;
####STR2=a=b, and c=c
dropstartwordsm.sas
- Function-style macro to drop any of a list of words that might
Usage: %macro noifwherem(str);
%let str= If a=b, and c=c;
####STR2=a=b, and c=c
dropvars.sas - To drop a list of unwanted variables in a list of datasets.
Usage: %dropvars(work._all,x1 x2)
dsall.sas
- To expand out the _all_ in a dataset list into all datasets in the
Usage: %dsall(sasuser.test work._all_);
dsattr.sas - Extract attributes for a dataset from dictionary.columns
Usage: %dsattr(sashelp.class,classattr);
dsattrib.sas
- To force a set of attributes, held in a template dataset,
Usage: %dsattrib(template,inds,outds)
dslabel.sas - Function-style macro to return a dataset label
Usage: %let dslabel=%dslabel(dsname);
dslist.sas - To list all the datasets in a libref.
Usage: %dslist(work);
dsplit.sas
- To split up a space delimited list of datasets (with possible
Usage: %let str=dset1 dset2( keep= aa bb cc ) dset3( drop = dd ee
)
dtscale.sas - To generate a date scale for sas/graph
Usage: %dtscale(&min,&max);
duplvars.sas
- Function-style macro to create a list of duplicate variables in a
Usage: data newds;
editlist.sas
- Function-style macro to allow you to edit a list of space
Usage: %put >>> %editlist(aa bb cc dd,'&item=mr_&item');
(will write to log:)
endwith.sas
- Function-style macro to ensure any non-null value assigned to a
Usage: filename outfile "%endwith(&outdir,/)output.txt";
env2ds.sas - To write system and user environment variables to a dataset.
Usage: %env2ds;
env2dsw7.sas
- To write system and user environment variables to a dataset for
Usage: %env2dsw7;
eqsuff.sas
- Function-style macro to suffix a list of words (usually variables)
Usage: put %eqsuff(&varlist);
equals.sas
- In-datastep function-style macro to compare two numeric values to
Usage: if %equals(val1,7.3) then ...
fencoding.sas - To determine the encoding of a text file from the byte order mark
Usage: %fencoding(full-file-path);
findinhash.sas - In-datastep macro to call a hash object
Usage: data test2;
fixiso8601.sas - In-datastep macro to give ranges for partial ISO 8601 dates
Usage: data mydset2;
fixnames.sas
- In-datastep macro to fix UTF-8 characters in a person's name by
Usage: data newpatinfo;
fixvars.sas - To "fix" variables in a library so they are consistent
Usage: fixvars(mylib,w);
flatten.sas - To "flatten" data so there is only one observation per "by group"
Usage: %flatten(dsin=test,bygroup=by1 by2,vars=str num)
fmtord.sas
- To create a numeric informat that maps a format label to its
Usage: %fmtord(agernge);
fmtpath.sas - Function-style macro to get the full fmtsearch path
Usage: %let path=%fmtpath;
fmts2fda.sas - To create sas code to generate formats as found in your data
Usage: %fmts2fda(mylib1 mylib2)
getfmts.sas - To get details of a list of user formats defined in a dataset
Usage: %getfmts(dsin=fmtlist,fmtvar=format,dsout=allfmts);
gettitles.sas
- To read the title lines of an LST file and write them to a global
Usage: %gettitles(C:\temp\myfile.lst)
getvalue.sas - Function-style macro to return a variable's value
Usage: %let value=%getvalue(dsname,varname,1);
getvaluems.sas
- Function-style macro to return a variable's value or a single
Usage: %let value=%getvaluems(dsname,varname,1);
getvalueq.sas - Function-style macro to return a variable's value
Usage: %let value=%getvalueq(dsname,varname,1);
globexist.sas
- Function-style macro to return true if all the global macro
Usage: %if %globexist(globvar) %then %do ....
globlist.sas
- Function-style macro to return a list of current global macro
Usage: %let glist=%globlist;
hasvars.sas
- Function-style macro to return true if a dataset has all the
Usage: %if not %hasvars(dsname,aa bb cc) %then %do ....
hasvarsc.sas
- Function-style to return true if a dataset has all the character
Usage: %if not %hasvarsc(dsname,aa bb cc) %then %do ....
hasvarsn.sas
- Function-style macro to return true if a dataset has all the
Usage: %if not %hasvarsn(dsname,aa bb cc) %then %do ....
hexchars.sas
- To show up ascii non-printables characters in a flat file by
Usage: %hexchars(infile.ext)
hexcnt.sas - To count the strange hex character in character variables Usage: %hexcnt(dsname,droplist,globcnt=_hexcnt_,globvars=_hexvars_); int2num.sas
- To convert variables to numeric where you know they should be
Usage:
isodatepart.sas
- In-datastep function-style macro for extracting the date part of a
Usage:
isodttm.sas
- In-datastep function-style macro for generating a standard ISO
Usage:
isoformats.sas
- Macro to define the ISO 8601 formats used by the %isodttm macro
Usage: %isoformats;
isotimepart.sas
- In-datastep function-style macro for extracting the time part of a
Usage:
killsas.sas - To kill any user's SAS session except the one running this macro
Usage: %killsas
killsess.sas - To kill a Windows SAS session
Usage: %killsess
lafootnote.sas - To create a left-aligned footnote
Usage: %lafootnote(2," second footnote indented two spaces")
latitle.sas - To create a left-aligned title
Usage: %latitle(2," second title indented two spaces")
lcralign.sas
- Write to a macro variable with the supplied text left, center
Usage: %let macvar=;
liblist.sas - To list all the libraries.
Usage: %liblist;
ljustify.sas - To left-justify all character fields in a dataset
Usage: %ljustify(dset)
lookahead.sas
- To do the opposite of lag and allow the user to look ahead at the
Usage:
look4lwork.sas
- To look for the fileref LWORK and if found to change the "srclib"
Usage: %let srclib=work; *- the expected source of prebuilt datasets
-;
lrafootnote.sas - To left and right-align a two part footnote for a pure text output
Usage: %lrafootnote(5,"Left aligned","Right-aligned")
lratitle.sas - To left and right-align a two part title for a pure text output
Usage: %lratitle(5,"Left aligned","Right-aligned")
ls2sas.sas - To write a list of Unix/Linux file names to a sas dataset
Usage: %ls2sas(./MYLIB/*.txt);
lslist2sas.sas - To read the results of the Unix/Linux "ls" command into a dataset
Usage: lslist2sas(my-text-file);
lsfp2sas.sas - To write a list of Unix/Linux full path file names to a dataset
Usage: %lsfp2sas(./MYLIB/*.txt);
lscmd.sas
- Function-style macro to return a list of members of a directory
Usage: %let dirlist=%lscmd(/usr/utilmacros);
lsfpq.sas
- Function-style macro to return a list of full-path quoted members
Usage: %let dirlist=%lsfpq(/usr/mylib); %*- NO
GOOD -;
lstattrib.sas
- Lists the variable attributes of the specified dataset in the
Usage: %lstattrib(sasuser.demog) lstlbls.sas - To list variables and their labels to the log Usage: %lstlbls(dsname(keep=aa bb cc dd),16); ltgtm1.sas
- In-datastep macro to turn a text numeric value into a numeric
Usage: %ltgtm1(textvar,numvar);
makehash.sas - In-datastep macro to set up a hash object
Usage: data test2;
match.sas
- Function-style macro to return elements of a list that match those
Usage: %let match=%match(aa bb,aa cc);
maxtitle.sas
- To find the highest number title and footnote and output to global
Usage: %maxtitles
md5sum.sas
- To write the md5 checksum to the log for a two-level dataset
Usage: %md5sum(outads.basco)
misscnt.sas - To create a list of variables and their missing value count Usage: %misscnt(dsname,droplist,globvar=_miss_); missvars.sas - To create a list of all-missing variables
Usage: %missvars(dsname);
mkdir.sas - To create a directory
Usage: %mkdir(full-path-name);
mkformat.sas
- To create a format out of a "coded" and "decoded" variable in a
Usage: %mkformat(dsname(where=(x>1)),varcd,vardcd,fmtname,fmtcat);
mkordinfmt.sas
- To create a numeric informat to map character strings to an
Usage: %mkordinfmt(fmtname=lvl,dsin=test,var=str,ordvar=order)
mksharemac.sas
- To create a shared macro catalog under the WORK library location
Usage: %mksharemac(mymac1 mymac2)
modte.sas
- Function-style macro to return the last modification datetime
Usage: %let modte=%modte(dsname);
mtype.sas
- Function-style macro to return the member type of a dataset
Usage: %let mtype=%mtype(dsname);
mvarlist.sas
- Function-style macro to return a list of macro variable names
Usage: %macro dummy(a=123,b=345,c=);
mvarvalues.sas
- Lists and resolves macro variables one per line for a supplied
Usage: %mvarvalues(&mvarlist,*);
mysasautos.sas
- Function-style macro to return the user's SASAUTOS setting but
Usage: rsubmit wait=no process1 inheritlib=(work=lwork)
nlobs.sas
- Function-style macro to return the number of logical observations
Usage: %put >>>>>> %nlobs(sashelp.class) >>>>;
nobs.sas
- Function-style macro to return the number of observations in a
Usage: %put >>>>>> %nobs(sashelp.class) >>>>;
nocommas.sas - Function-style macro to translate commas into spaces
Usage: %let str=aa, bb, cc;
nodup.sas - Function-style macro to drop duplicates in a space-delimited list
Usage: %let str=%nodup(aaa bbb aaa);
nodupkey.sas
- To sort "nodupkey" but list observations being dropped so that
Usage: %nodupkey(ds,var1 var2 var3)
noquotes.sas
- Function-style macro to remove all quoted strings from a macro
Usage: %let noquotes=%noquotes(&str);
now.sas - Function-style macro to return the current timestamp
Usage: %put Stage1: %now;
numchars.sas
- To create a list of character variables that contain numeric-like
Usage: %numchars(dsname,globvar=_numchars_);
num2char.sas - To "effectively" convert a list of numeric variables to character
Usage: %num2char(test,test2,cvar1 cvar2 cvar3 cvar4)
nvars.sas
- Function-style macro to return the number of variables in a
Usage: %let nvars=%nvars(dsname);
nvarsc.sas
- Function-style macro to return the number of character variables
Usage: %let nvarsc=%nvarsc(dsname);
nvarsn.sas
- Function-style macro to return the number of numeric variables in
Usage: %let nvarsn=%nvarsn(dsname);
optlength.sas
- To create a length statement for character variables that take up
Usage: optlength(dset)
optvarlen.sas
- To create an output dataset with the same variable order as the
Usage: %optvarlen(sashelp.class,classattr);
partialdates.sas - In-datastep macro to impute partial dates to a high or low value
Usage: data test;
prefix.sas - Function-style macro to return a list with a prefix added.
Usage: %let preflist=%prefix(C:\mylib\,fname1 "fname 2" fname3);
printall.sas
- To print every observation in a library where a variable satisfies
Usage: %printall(work,%str(num>1))
printit.sas
- To "proc report" a dataset using "ods pdf" style where for pre-
Usage: options mrecall mprint notes;
*- pre sas v9.4 format test dataset -;
%printit(class,
ods pdf close;
prxnames.sas
- Function-style macro to convert a space-delimited list of sas
Usage: %let dslist=var1 var2 vx:;
putvars.sas
- To list variables in a dataset suffixed with an equals sign
Usage: put %putvars(ds);
qcompress.sas
- Function-style macro to compress a macro variable string and
Usage: %let tidy=%qcompress(&string);
qdequote.sas
- Function-style macro to remove front and end matching quotes
Usage: %let str=%qdequote(%qreadpipe(echo '%username%'));
qdosfileinfo.sas
- Function-style macro to return information about a DOS file
Usage: %let filesize=%qdosfileinfo(C:\spectre\unistats.html,z); qgetenv.sas
- Function-style macro to get the contents of a system or user
Usage: %let newvar=%qgetenv(uservar);
qreadpipe.sas
- Function-style macro to read the output of a system command and
Usage: %let mvar=%qreadpipe(echo $USER);
quotecnt.sas - Function-style macro to count quoted strings in a macro expression
Usage: %let count=%quotecnt(&str);
quotelst.sas - Function-style macro to quote the elements of a list
Usage: %if %index(%quotelst(varnames),"varname") %then...
quotescan.sas
- Function-style macro to scan for a quoted string in a macro
Usage: %let scan=%quotescan(&str,2);
rafootnote.sas - To right-align a footnote for a pure text output
Usage: %rafootnote(5,"This footnote 5 will be right-aligned")
rannomac.sas - Compile Roland's annotate macros Usage: filename webout "C:\spectre\";
goptions reset=all xpixels=1000 ypixels=6000 hpos=50 vpos=300
ods listing close;
%rannomac
data test;
*- Set description to a space to stop whole output area -;
*- If you rerun this code then you need to delete the -;
ods html close;
ratitle.sas - To right-align a title for a pure text output
Usage: %ratitle(5,"This title 5 will be right-aligned")
rcmd2ds.sas
- To run a system command on the remote host and write the output to
Usage: %rcmd2ds(ls /root/usr/mylib)
rcmd2log.sas
- To run a system command on the remote host and write the output to
Usage: %rcmd2log(ps -fu userid); *- see details of a user-id -;
rcmd2mvar.sas
- To run a system command on the remote host and write the output to
Usage: %rcmd2mvar(ps -fu userid,mymvar); *- see details of a user-id -;
readfile.sas
- Function-style macro to read in a flat file and assign the
Usage: %let mvar=%readfile(filename);
remove.sas
- Function-style macro to remove all occurrences of the target
Usage: %let string2=%remove(&string1,XXX,yyy,YYY);
removew.sas
- Function-style macro to remove all occurrences of the target
Usage: %let colors2=%remove(&rainbow,green yellow);
rename8.sas
- Function-style macro to return a variable rename list for variable
Usage: data myds2;
replhex.sas
- To replace occurrences of a specified hex character in a flat file
Usage: %replhex(infile,outfile,'FE'x,' ')
revfmt.sas
- To take a list of formats and to create new formats that are the
Usage: %revfmt($fmta $fmtb);
rinclude.sas - To submit local sas code members in the remote session
Usage: %rinclude(mylib(mymacro1.sas)
"C:\mylib\mymacro2.sas"
round.sas - To round all the numeric variables in a list of datasets.
Usage: %round(work._all_)
rsubmitter.sas
- To remotely submit a block of tasks in a specified number of
Usage: %rsubmitter(streams=&streams,taskblock=&taskblock)
rxmatch.sas
- Function-style macro to return those space-delimited elements of a
Usage: %let match=%rxmatch(apopa pop aapop popaa,pop $s);
samevars.sas
- Function-style macro to return true (1) or false (0) if variables
Usage: %if not %samevars(dset1,dset2) %then %do....
samplevars.sas
- To sample the non-missing values in all the variables in a dataset
Usage: %samplevars(sashelp.class)
sas2tabdlm.sas - To write the contents of a sas dataset to a tab-delimited file
Usage: %sas2tabdlm(sashelp.cars,,yes)
sas2xpt.sas - Create multiple transport files from sas datasets Usage: %sas2xpt((INDSLIB),%nrstr("V:\SAS\Two Parts\X&Y\temp\")); savopts.sas
- Function-style macro to return a list of active sas options so
Usage: %let savopts=%savopts(missing mprint);
scandlm.sas
- Function-style macro to return a scan of a string with its
Usage: %put %scandlm(&str,2,*#); scanfile.sas
- Counts the number of lines of text in a file that contain the
Usage: %scanfile(C:\temp\myfile.lst,Treated,3,casesens=no)
*-- Complex example of scanning all the sas programs --;
scanlog.sas
- To scan sas log file(s) or the log window for important messages
Usage: %scanlog("full-file-path-name")
sep2sp.sas
- Function-style macro to convert groups of commas and spaces in a
Usage: %let newstr=%sep2sp(%nrbquote(a , b, ,,,
c));
sep2u.sas
- Function-style macro to convert groups of commas and spaces in a
Usage: %let newstr=%sep2u(%nrbquote(a , b, ,,,
c));
showhex.sas
- To create a new dataset where hex characters in character
Usage: %showhex(test1,test2,cvar1 cvar2 cvar3)
sortedby.sas
- Function-style macro to return the variables a dataset is sorted
Usage: %let sortedby=%sortedby(dsname);
splitmac.sas - Function-style macro to insert split characters in a macro string
Usage: %let str=The quick brown fox jumped over the lazy dog;
splitvar.sas - In-datastep macro to insert split characters in a string variable
Usage: data aaa;
sqlsamevars.sas
- In-SQL macro to test if two datasets/tables have the same
Usage: proc sql noprint;
stdtc.sas
- Function-style macro to return the first variable name that ends
Usage: %put #### %stdtc(mydset);
substrw.sas
- Function-style macro to substring words assigned to a macro
Usage: %let whatsleft=%substrw(&mvar,4);
suffix.sas - Function-style macro to return a list with a suffix added.
Usage: %let sufflist=%suffix(.sas,fname1 "fname 2" fname3);
supasort.sas
- To sort a list of datasets by variables if they exist in the
Usage: %supasort(work._all_,date time) superql.sas
- Function-style macro that uses as the argument the NAME of a
Usage :
(log output with some text changed to fool log scanners)
sysfmtlist.sas - In-datastep macro to list all the system formats
Usage: if format in (" " %sysfmtlist) then _fmt="SYS";
termstr.sas
- To guess the line termination character(s) (CRLF or LF) of a text
Usage: %termstr(myfile);
therest.sas
- Function-style macro to give you everything following any found
Usage: %let rest=%therest(&str,\/);
titlelen.sas - To create a copy of sashelp.vtitle but with the length added. Usage: %titlelen unfmt2mvar.sas
- To list distinct values of a variable to a macro variable but
Usage: %unfmt2mvar(test, race sex, mrace msex);
v_macros.sas
- To compile the validation macros %mmm, %fmm, %dmm and set up
Usage: %v_macros
%let mut=removew;
var2mvar.sas - To write data in a variable to a global macro variable
Usage: %var2mvar(sashelp.class(where=(name=:"A")),name);
varfmt.sas - Function-style macro to return a variable format
Usage: %let varfmt=%varfmt(dsname,varname);
varinfmt.sas - Function-style macro to return a variable informat
Usage: %let varinfmt=%varinfmt(dsname,varname);
varlabel.sas - Function-style macro to return a variable label
Usage: %let varlabel=%varlabel(dsname,varname);
varlen.sas - Function-style macro to return a variable length
Usage: %let varlen=%varlen(dsname);
varlens.sas
- Function-style macro to return a list of variables with their
Usage: data test;
varlist.sas - Function-style macro to return a list of variables in a dataset
Usage: %let varlist=%varlist(dsname);
varlistc.sas
- Function-style macro to return a list of character variables in a
Usage: %let varlistc=%varlistc(dsname);
varlistn.sas
- Function-style macro to return a list of numeric variables in a
Usage: %let varlistn=%varlistn(dsname);
varnum.sas
- Function-style macro to return the variable position in a dataset
Usage: %let varnum=%varnum(dsname,varname); vars2num.sas
- To convert variables to numeric where you know they should be
Usage:
vartype.sas - Function-style macro to return a variable type as either C or N
Usage: %let vartype=%vartype(dsname,varname);
vaxis.sas - To generate the values to construct a vaxis scale
Usage: %vaxis(&min,&max,spare=1)
verifyb.sas
- Function-style macro to return the position of the first character
Usage: %let pos=%verifyb(&text,%str( )); %*- last non-blank character
-;
views2data.sas
- To convert all sas data views in one library into data sets in
Usage: %views2data(viewlib,datalib);
vwlist.sas - To list all the views in a libref.
Usage: %vwlist(work);
windex.sas - Function-style macro to return the word count position in a string
Usage: %let windex=%windex(string,target);
worddate.sas
- Function-style macro to convert a date in the form "date"D to a
Usage: %let worddate=%worddate("&sysdate9"D);
worddateu.sas
- Function-style macro to convert a date in the form "date"D to a
Usage: %let worddateu=%worddateu("&sysdate9"D); words.sas - Function-style macro to return the number of words in a string Usage: %let words=%words(string); xl2sas.sas - Read an Excel spreadsheet into a sas dataset using DDE
Usage: %xl2sas(xlfile=C:\myfiles\My Spread Sheet.xls,sheetname=Sheet1,
xlblocks.sas
- Read an Excel spreadsheet sheet containing blocks of
Usage: %xlblocks(xlfile=C:\myfiles\My Sheet.xls,sheetname=Sheet One,
xlsheets.sas
- Get a list of sheet names (topics) from an Excel spreadsheet
Usage: %xlsheets(C:\Mydata\Spread Sheet Name.xls); xpt2sas.sas - Convert all the .xpt files in a folder to sas datasets
Usage: %xpt2sas(%nrstr("V:\SAS\Two Parts\X&Y\"),
yrcutoff.sas
- To set the year cutoff option to a number of years previous to the
Usage: %yrcutoff
zerogrid.sas
- To create a "grid" of combined values with a variable set to zero
Usage: %zerogrid(dsout=grid,var1=subject,ds1=demog,var2=tmtarm,
|
Use the "Back" button of your browser
to return to the previous page