tags:

views:

67

answers:

3

How do I start a new .R file default in a new session for new objects in that session?

+3  A: 

I believe that you can save your current workspace using save.image(), which will default to the name ".RData". You can load a workspace simply using load().

If you're loading a pre-existing workspace and you don't want that to happen, rename or delete the .RData file in the current working directory.

If you want to have different projects with different workspaces, the easiest thing to do is create multiple directories.

ngroot
+4  A: 

There is no connection between sessions, objects and controlling files .R. In short: no need to.

You may enjoy walking through the worked example at the end of the Introduction to R - A Sample Session. Fire up R in your preferred environment and execute the commands one-by-one.

Dirk Eddelbuettel
A: 

Workspaces are .RData files, not .R files. .R files are source files, i.e. text files containing code.

It's a bit tricky. If you saved the workspace, then R saves two files in the current working directory : an .RData file with the objects and a .RHistory file with the history of commands. In earlier versions of R, this was saved in the R directory itself. With my version 2.11.1, it uses the desktop.

If you start up your R and it says : "[Previously saved workspace restored]", then it loaded the file ".RData" and ".RHistory" from the default working directory. You find that one by the command

getwd()

If it's not a desktop or so, then you can use

dir()

to see what's inside. For me that doesn't work, as I only have the file "desktop.ini" there (thank you, bloody Windoze).

Now there are 2 options : you manually rename the workspace, or use the command:

save.image(file="filename.RData")

to save the workspaces before you exit. Alternatively, you can set those options in the file Rprofile.site. This is a text file containing the code R has to run at startup. The file resides in the subdirectory /etc of your R directory. You can add to the bottom of the file something like :

fn <- paste("Wspace",Sys.Date(),sep="")
nfiles <- length(grep(paste(fn,".*.RData",sep=""),dir()))
fn <- paste(fn,"_",nfiles+1,".RData",sep="")
options(save.image.defaults=list(file=fn))

Beware: this doesn't do a thing if you save the workspace by clicking "yes" on the message box. You have to use the command

save.image()

right before you close your R-session. If you click "yes", it will still save the workspace as ".RData", so you'll have to rename it again.

Joris Meys
I meant .RData extension
Georgette
R loads the last .RData I used. It seems like the default question "Do you want to save the workspace" saves the .RData to the default directory. But if I only want to save the objects I just made, it adds them to the .RData file when I say 'yes' to the save request.
Georgette
Indeed, that's correct. I didn't find a hack yet to get that changed. So just say "no", and use "save.image()" or save(object1,object2,...) to save the things you want. To get rid of that saved .RData file that gets loaded, just do getwd() when you start up a session, and you know where you have to delete the file.
Joris Meys