-----Original Message-----
From: Hadley Wickham [mailto:h.wick...@gmail.com] 
Sent: Tuesday, 12 March, 2013 1:34 PM
To: Szumiloski, John
Cc: r-help@r-project.org
Subject: Re: [R] ls() with different defaults: Solution;

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

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



Hadley

--
Chief Scientist, RStudio
http://had.co.nz/
Notice:  This e-mail message, together with any attachme...{{dropped:11}}

______________________________________________
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.

Reply via email to