[R] ls() with different defaults: Solution;

Nordlund, Dan (DSHS/RDA) NordlDJ at dshs.wa.gov
Tue Mar 12 19:14:57 CET 2013


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Szumiloski, John
> Sent: Tuesday, March 12, 2013 10:39 AM
> To: Hadley Wickham
> Cc: r-help at r-project.org
> Subject: Re: [R] ls() with different defaults: Solution;
> 
> 
> 
> -----Original Message-----
> From: Hadley Wickham [mailto:h.wickham at gmail.com]
> Sent: Tuesday, 12 March, 2013 1:34 PM
> To: Szumiloski, John
> Cc: r-help at r-project.org
> Subject: Re: [R] ls() with different defaults: Solution;
> 
> On Tue, Mar 12, 2013 at 12:59 PM, Szumiloski, John
> <john_szumiloski at merck.com> wrote:
> > Dear useRs,
> >
> > Some time ago I queried the list as to an efficient way of building a
> function which acts as ls() but with a different default for all.names:
> >
> > http://tolstoy.newcastle.edu.au/R/e6/help/09/03/7588.html
> >
> > I have struck upon a solution which so far has performed admirably.
> In particular, it uses ls() and not its explicit source code, so only
> has a dependency on its name and the name of its all.names argument.
> Here is my solution:
> >
> > lsall  <-  function(...) {
> >
> >      thecall <- as.call(c(as.name('ls'), list(...)))
> >      newcall <- match.call(definition=ls, call=thecall)
> >      if( !('all.names' %in% names(newcall)) ) newcall[['all.names']]
> <- TRUE
> >      eval(newcall, envir=parent.frame())
> >
> >    }#### end lsall
> 
> Why not just do:
> 
> lsall  <-  function(..., all.names = TRUE) {
>   ls(..., all.names = all.names)
> }
> 
> ?   Then the function practically documents itself.
> 
> The search path of the internal ls() is not the same as that of the
> called lsall().  You then get (e.g.)
> 
> >  lsall2()
> [1] "..."       "all.names"
> 
> John
> 
> 

Then how about

lsall  <-  function(..., all.names = TRUE) {
   ls(..., all.names = all.names, envir=parent.frame())
}


Hope this is helpful,

Dan

Daniel J. Nordlund
Washington State Department of Social and Health Services
Planning, Performance, and Accountability
Research and Data Analysis Division
Olympia, WA 98504-5204



More information about the R-help mailing list