That is useful, when calling the script like this:

> file <- "Rscript.R"
> source(file)

However, it does not work if we do this from the shell prompt:

$ R --vanilla < Rscript.R

because the eval.parent statement attempts to access a "base workspace" that 
does not contain the "file" object/variable, as above. Is there a solution 
for this situation? Is the input script file an argument to R and therefore 
available in something like argv?


On Mar 18, 2005 8:00 PM, Gabor Grothendieck <[EMAIL PROTECTED]> wrote:
> 
> Darren Weber <darrenleeweber <at> gmail.com <http://gmail.com>> writes:
> 
> :
> : Hi,
> :
> : if we have a file called Rscript.R that contains the following, for 
> example:
> :
> : x <- 1:100
> : outfile = "Rscript.Rout"
> : sink(outfile)
> : print(x)
> :
> : and then we run
> :
> : >> source("Rscript.R")
> :
> : we get an output file called Rscript.Rout - great!
> :
> : Is there an internal variable, something like .Platform, that holds
> : the script name when it is being executed? I would like to use that
> : variable to define the output file name.
> :
> 
> In R 2.0.1 try putting this in a file and sourcing it.
> 
> script.description <- function() eval.parent(quote(file), n = 3)
> print(basename(script.description()))
> 
> If you are using R 2.1.0 (devel) then use this instead:
> 
> script.description <- function()
> showConnections() [as.character(eval.parent(quote(file), n = 3)),
> "description"]
> print((basename(script.description())))
> 
> ______________________________________________
> [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
>

        [[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

Reply via email to