On Tue, Mar 12, 2013 at 12:59 PM, Szumiloski, John <john_szumilo...@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 > > In my hands this function has always acted exactly as I expected, identically > to ls() but with the default of all.names=TRUE (which can be overridden as > usual). In particular, it (i) gets the proper search path position right; > (ii) works as expected within a browser() session. I am sharing this in case > someone finds this construction helpful for other purposes, and in case > someone finds a failing case they then have the option of communicating it > back here.
Also have a look at the Defaults package, e.g. library(Defaults) ls2 <- ls setDefaults(ls2, all.names = TRUE) # test .a <- 1 ls() ls2() -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@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.