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 <[email protected]> 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: [email protected] [mailto:[email protected]] > 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 > > <[email protected]>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 > > >> <[email protected] > > <mailto:murdoch.duncan@gmail.**com<[email protected]>>> > > >> 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]] > > > > ______________________________________________ > > [email protected] 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]] ______________________________________________ [email protected] 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.

