[Rd] Locating code that is outside of functions in R scripts

Gabor Grothendieck ggrothendieck at gmail.com
Thu Dec 24 01:51:30 CET 2009


This sources the indicated file into the local environment (i.e. the
environment within src) and then only copies out the objects that are
functions into the workspace so that you are only left with them.

src <- function(file) {
   source(file, local = TRUE)
   for(nm in ls(all = TRUE)) if (is.function(get(nm))) assign(nm,
get(nm), .GlobalEnv)
}

# usage:
src("myfile.R")

On Wed, Dec 23, 2009 at 7:04 PM,  <gheine at mathnmaps.com> wrote:
>
> Working with a number of scripts (text files with R commands) that I
>
> "source" into R sessions from time to time.
>
> The source() command is most convenient (at least for me)
>
> if it only loads function definitions, and doesn't otherwise change the
>
> interactive environment.  For example, I might have a file that looks like
>
>
>
> func1<-function() {
>
>  code
>
>  code
>
>  code
>
>  }
>
> # this is a comment
>
>
>
> A<-"this is code outside the function definitions";
>
>
>
> func2<-function() {
>
>   code
>
> # a comment with a spurious }
>
>   code
>
>   code
>
>   }
>
>
>
> I would like a quick-and-dirty script that finds the line beginnning with
>
> "A", since it is R code outside of any function definition.
>
> On the other hand it would ignore the two comment lines, and would not be
>
> fooled by the spurious "}" in the second comment line.
>
> Probably not too hard to put something like this together, but am making
>
> this post in case it is something that has already been done.
>
>
>
>
>
> Thanks!
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list