[R] Inefficiency of SAS Programming

Gerard M. Keogh GMKeogh at justice.ie
Fri Feb 27 15:18:47 CET 2009

Yes Frank, I accept your point but nevertheless IML is the proper place for
matrix work in SAS - mixing macro-level logic and computation is another
question - R is certainly more seemless in this respect.


             Frank E Harrell                                               
             <f.harrell at vander                                          To 
             bilt.edu>                 "Gerard M. Keogh"                   
                                       <GMKeogh at justice.ie>                
             27/02/2009 13:55                                           cc 
                                       R list <r-help at stat.math.ethz.ch>,  
                                       r-help-bounces at r-project.org        
                                       Re: [R] Inefficiency of SAS         

Gerard M. Keogh wrote:
> Frank,
> I can't see the code you mention - Web marshall at work - but I don't
> you should be too quick to run down SAS - it's a powerful and flexible
> language but unfortunately very expensive.
> Your example mentions doing a vector product in the macro language - this
> only suggest to me that those people writing the code need a crash course
> in SAS/IML (the matrix language). SAS is designed to work on records and
> is inapproprorriate for matrices - macros are only an efficient code
> copying device. Doing matrix computations in this way is pretty mad and
> code would be impossible never mind the memory problems.
> SAS recognise that but a lot of SAS users remain familiar with IML.
> In IML by contrast there are inner, cross and outer products and a raft
> other useful methods for matrix work that R users would be familiar with.
> OLS for example is one line:
> b = solve(X`X, X`y) ;
> rss = sqrt(ssq(y - Xb)) ;
> And to give you a flavour of IML's capabilities I implemented a SAS
> of the MARS program in it about 6 or 7 years ago.
> BTW SPSS also has a matrix language.
> Gerard

But try this:

... some custom user code ...
... loop over j=1 to 10 ...
...   PROC GENMOD, output results back to IML

IML is only a partial solution since it is not integrated with the PROC



>              Frank E Harrell

>              Jr

>              <f.harrell at vander
>              bilt.edu>                 R list <r-help at stat.math.ethz.ch>

>              Sent by:
>              r-help-bounces at r-

>              project.org
>                                        [R] Inefficiency of SAS

>              26/02/2009 22:57





> If anyone wants to see a prime example of how inefficient it is to
> program in SAS, take a look at the SAS programs provided by the US
> Agency for Healthcare Research and Quality for risk adjusting and
> reporting for hospital outcomes at
> http://www.qualityindicators.ahrq.gov/software.htm .  The PSSASP3.SAS
> program is a prime example.  Look at how you do a vector product in the
> SAS macro language to evaluate predictions from a logistic regression
> model.  I estimate that using R would easily cut the programming time of
> this set of programs by a factor of 4.
> Frank
> --
> Frank E Harrell Jr   Professor and Chair           School of Medicine
>                       Department of Biostatistics   Vanderbilt University
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

> The information transmitted is intended only for the person or entity to
which it is addressed and may contain confidential and/or privileged
material. Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by persons or
entities other than the intended recipient is prohibited. If you received
this in error, please contact the sender and delete the material from any
computer.  It is the policy of the Department of Justice, Equality and Law
Reform and the Agencies and Offices using its IT services to disallow the
sending of offensive material.
> Should you consider that the material contained in this message is
offensive you should contact the sender immediately and also
> Is le haghaidh an duine nó an eintitis ar a bhfuil sí dírithe, agus le
haghaidh an duine nó an eintitis sin amháin, a bheartaítear an fhaisnéis a
tarchuireadh agus féadfaidh sé go bhfuil ábhar faoi rún agus/nó faoi
phribhléid inti. Toirmisctear aon athbhreithniú, atarchur nó leathadh a
dhéanamh ar an bhfaisnéis seo, aon úsáid eile a bhaint aisti nó aon ghníomh
a dhéanamh ar a hiontaoibh, ag daoine nó ag eintitis seachas an faighteoir
beartaithe. Má fuair tú é seo trí dhearmad, téigh i dteagmháil leis an
seoltóir, le do thoil, agus scrios an t-ábhar as aon ríomhaire. Is é
beartas na Roinne Dlí agus Cirt, Comhionannais agus Athchóirithe Dlí, agus
na nOifígí agus na nGníomhaireachtaí a úsáideann seirbhísí TF na Roinne,
seoladh ábhair cholúil a dhícheadú.
> Más rud é go measann tú gur ábhar colúil atá san ábhar atá sa
teachtaireacht seo is ceart duit dul i dteagmháil leis an seoltóir
láithreach agus le mailminder[ag]justice.ie chomh maith.


Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University

More information about the R-help mailing list