R.utils (version 0.7.7)

sourceTo: Parses and evaluates code from a file or a connection

Usage

## S3 method for class 'default}(file, chdir=FALSE, ..., local=TRUE, envir=parent.frame())':
sourceToundefined

 Parses and evaluates code from a file or a connection.
   This has the same effect as if source(..., local=TRUE) would have
   been called from within the given environment.
   This is useful when setting up a new local working environment.

 file{A connection or a character string giving the pathname
         of the file or URL to read from.}
   chdir{If TRUE and file is a pathname, the Rworking directory is temporarily changed to the directory
         containing file for evaluating.}
   ...{Arguments to source(). If argument file is
      not explicitly given, the first argument is assumed to be the
      file argument. This argument is converted into a string by
      as.character().
   }
   local{If FALSE, evaluation is done in the global environment,
      otherwise in the calling environment.}
   envir{An environment in which source() should be
      called. If NULL, the global environment is used.}

 Return the result of source().

 
Hooks
{ This methods recognizes the hook sourceTo/onPreprocess, which is called after the lines in file has been read, but before they have been parsed by the Rparser, cf. parse(). An onPreprocess hook function should take a character vector of code lines and return a character vector of code lines. This can for instance be used to pre-process R source code with special directives such as VComments. Note that only one hook function can be used for this function, otherwise an error is generated. } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Example 1 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cat("=== Example 1 ================================================ ") foo <- function(file, ...) { cat("Local objects before calling sourceTo(): ") print(ls()) res <- sourceTo(file, ...) cat("Local objects after calling sourceTo(): ") print(ls()) } cat("Global objects before calling foo(): ") lsBefore <- NA lsBefore <- ls() foo(file=textConnection(c('a <- 1', 'b <- 2'))) cat("Global objects after calling foo(): ") stopifnot(length(setdiff(ls(), lsBefore)) == 0) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Example 2 - with VComments preprocessor # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cat("=== Example 2 ================================================ ") preprocessor <- function(lines, ...) { cat("----------------------------------------- ") cat("Source code before preprocessing: ") displayCode(code=lines, pager="console") cat("----------------------------------------- ") cat("Source code after preprocessing: ") lines <- VComments$compile(lines) displayCode(code=lines, pager="console") cat("----------------------------------------- ") lines } oldHooks <- getHook("sourceTo/onPreprocess") setHook("sourceTo/onPreprocess", preprocessor, action="replace") code <- c( 'x <- 2', '#V1# threshold=-1', '#Vc# A v-comment log message', 'print("Hello world")' ) fh <- textConnection(code) sourceTo(fh) setHook("sourceTo/onPreprocess", oldHooks, action="replace") [object Object] sourceDirectory(). Compare to source(). programming IO

Arguments