Great help! Thanks a lot!

The only problem is how do I escape from a big loop?

Lets say after a few iterations in that big loop, I've already got enough
of the loop and wanted to escape the loop and debug the next line after the
loop...?

Thanks again!

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

>  Untested, you probably want to add pattern=\\.R$ or similar things****
>
> to the dir() call that lists all the files:****
>
> ** **
>
> filenames <- dir(directoryName, recursive=TRUE, full.names=TRUE)****
>
> unlist(lapply(filenames,
> function(file)namesOfFunctionsDefined(parse(file))))****
>
> ** **
>
> Bill Dunlap****
>
> Spotfire, TIBCO Software****
>
> wdunlap tibco.com****
>
> ** **
>
> *From:* Michael [mailto:comtech....@gmail.com]
> *Sent:* Tuesday, November 13, 2012 2:51 PM
> *To:* William Dunlap
>
> *Cc:* r-help
> *Subject:* Re: [R] How do I step thru all lines (including step into
> sub-routines) in a R script?****
>
>  ** **
>
> 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 <wdun...@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-boun...@r-project.org [mailto:r-help-boun...@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.dun...@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.dun...@gmail.com****
>
> > <mailto:murdoch.duncan@gmail.**com<murdoch.dun...@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]]

______________________________________________
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