Skip to content

set working directory to current source directory

5 messages · Sachinthaka Abeywardana, Kenn Konstabel, Gabor Grothendieck +2 more

#
When you close R it asks whether to save the workspace. I often say
"yes" and later start R by double clicking on that workspace (named
.Rdata) -- then the wd is automatically set. Alternatively you can
have setwd("X:/some/thing") at the beginning of your source file.

On Tue, Aug 14, 2012 at 3:40 AM, Sachinthaka Abeywardana
<sachin.abeywardana at gmail.com> wrote:
#
On Mon, Aug 13, 2012 at 8:40 PM, Sachinthaka Abeywardana
<sachin.abeywardana at gmail.com> wrote:
You could use this:

source.and.set <- function(x) {
	setwd(dirname(x))
	source(x)
}
# use it like this:
source.and.set("/a/b/c.R")

or you could put this hack at the top of your source file in which
case whenever its source'd it will setwd to its directory:

this.dir <- dirname(parent.frame(2)$ofile)
setwd(this.dir)
#
Hi Sachin,
a while ago I asked a somewhat similar question on stackoverflow:

http://stackoverflow.com/questions/8835426/get-filename-and-path-of-sourced-file

You may want to have a look at the suggestions I got.

Best,

Claudia
3 days later
#
A windows-centric work-round (assuming .Rdata files are 'associated' with the right R binary n installation) is to save an empty environment  in the relevant project directory with the source file you would normally run. Starting R by clicking on .Rdata file opens R in the right directory to start with. Using relative paths in scripts thereafter then keeps things within the project work area. Starting the first script with rm(list=ls()) guards against inadvertent inclusion of old data (and even apparently 'empty' environments aren't necessarily empty, so I clean up regardless if I start a session that way).

S Ellison

*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}