Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Gerard M. Keogh
> Sent: Friday, February 27, 2009 7:19 AM
> To: Frank E Harrell Jr
> Cc: r-help-bounces at r-project.org; R list
> Subject: Re: [R] Inefficiency of SAS Programming
>
> 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.
>
> Gerard
>
>
>
> Frank E Harrell
> Jr
> <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
>
> Subject
> Re: [R] Inefficiency of SAS
> Programming
>
>
>
>
>
>
>
>
>
>
> Gerard M. Keogh wrote:
> > Frank,
> >
> > I can't see the code you mention - Web marshall at work - but I don't
> think
> > 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
> so
> > is inapproprorriate for matrices - macros are only an efficient code
> > copying device. Doing matrix computations in this way is pretty mad
> and
> the
> > 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
> of
> > 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
> version
> > of the MARS program in it about 6 or 7 years ago.
> > BTW SPSS also has a matrix language.
> >
> > Gerard
>
> But try this:
>
> PROC IML;
> ... 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
> step.
>
> Frank
>
> >
> >
> >
> >
>
> > Frank E Harrell
>
> > Jr
>
> > <f.harrell at vander
> To
> > bilt.edu> R list <r-
> help at stat.math.ethz.ch>
>
> > Sent by:
> cc
> > r-help-bounces at r-
>
> > project.org
> Subject
> > [R] Inefficiency of SAS
> Programming
> >
>
> > 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
> mailminder[at]justice.ie.
> >
> > 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
>
> ______________________________________________
> 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.