Thanks a lot!

How do I iteratively loop your function thru all scripts under a big folder
and its sub-folders?

Thanks again!




On Tue, Nov 13, 2012 at 4:45 PM, William Dunlap <wdunlap@tibco.com> wrote:

> You can make a list of the names of the functions defined at the top
> level in a script using the following.
>
> namesOfFunctionsDefined <- function (expr) { # expr is typically output of
> parse(file)
>     expr <- as.list(expr)
>     isFunctionAssignment <- function(expr) is.call(expr) &&
> identical(expr[[1]],
>         as.name("<-")) && is.call(expr[[3]]) && identical(expr[[3]][[1]],
>         as.name("function"))
>     asgns <- vapply(expr, isFunctionAssignment, FALSE)
>     expr <- expr[asgns]
>     vapply(expr, function(e) deparse(e[[2]])[1], "")
> }
>
> E.g., for the script /tmp/r.R containing
>   f1 <- function(x)x+1
>   x <- 10
>   x1 <- f1(x)
>   f2 <- function(x)x+1
>   x2 <- f2(x)
> I get:
>   > namesOfFunctionsDefined(parse("/tmp/r.R"))
>   [1] "f1" "f2"
>
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
>
>
> > -----Original Message-----
> > From: r-help-bounces@r-project.org [mailto:r-help-bounces@r-project.org]
> On Behalf
> > Of Michael
> > Sent: Tuesday, November 13, 2012 2:08 PM
> > To: Duncan Murdoch
> > Cc: r-help
> > Subject: Re: [R] How do I step thru all lines (including step into
> sub-routines) in a R script?
> >
> > Is there a way to strip out all functions in hundreds of R script?
> >
> > And then I can create a script which does "debug(foo1); debug(foo2);
> > debug(foo3);",etc?
> >
> > Thank you!
> >
> > On Tue, Nov 13, 2012 at 3:56 PM, Duncan Murdoch
> > <murdoch.duncan@gmail.com>wrote:
> >
> > > On 12-11-13 4:50 PM, Michael wrote:
> > >
> > >> but there are hundreds of such functions...? how to mark them all
> using
> > >> "debug"?
> > >>
> > >
> > > When you see you are about to enter one that you haven't marked, you
> can
> > > mark it from within the debugger.  (So in some other debuggers you'd
> type
> > > "s" to step in; in R you need to type "debug(foo)" then "n".
> > >
> > > Duncan Murdoch
> > >
> > >  thanks!
> > >>
> > >> On Tue, Nov 13, 2012 at 3:43 PM, Duncan Murdoch
> > >> <murdoch.duncan@gmail.com
> > <mailto:murdoch.duncan@gmail.**com<murdoch.duncan@gmail.com>>>
> > >> wrote:
> > >>
> > >>     On 12-11-13 4:05 PM, Michael wrote:
> > >>
> > >>         How do I step thru all lines (including step into
> sub-routines)
> > >>         in a R
> > >>         script?
> > >>
> > >>         Hi all,
> > >>
> > >>         I know I can put a "browser()" into any place...
> > >>
> > >>         but how to step into sub-routines?
> > >>
> > >>         Keep pressing "n" at the break-point seems not getting me
> into the
> > >>         sub-routines?
> > >>
> > >>
> > >>     Mark all your functions for debugging using debug().  It's not
> like
> > >>     a debugger that will single step until you tell it to just
> continue
> > >>     on, but it gives you the individual steps.
> > >>
> > >>     When you've had enough of that, use undebug() to mark the
> functions
> > >>     for stepping over.
> > >>
> > >>     Duncan Murdoch
> > >>
> > >>
> > >>
> > >
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > 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<http://www.r-project.org/posting-guide.html>
> > and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]


