[R] Opening a script with the R editor via file association (on Windows)

Christopher Green cggreen at stat.washington.edu
Tue Aug 7 00:13:47 CEST 2007

On Fri, 3 Aug 2007, Duncan Murdoch wrote:

> On 03/08/2007 7:16 PM, Christopher Green wrote:
>> Is there an easy way to open an R script file in the R Editor found in
>> more recent versions of R on Windows via a file association? I am looking
>> for functionality akin to how the ".ssc" file extension works for S-Plus:
>> upon double-clicking on a ".R" file, Rgui.exe starts up and loads the 
>> script file in the R Editor.
>> As far as I can tell, Rgui.exe does not have a command line option to load
>> a file (so associating ".R" with "Rgui.exe %1" won't work). I can get 
>> Windows
>> to start Rgui.exe when I double-click on a script file, but that's about 
>> it.
>> I also don't see any way to have Rgui.exe evaluate an expression provided 
>> on
>> the command line (which would allow "file.edit(%1)"). I also thought about
>> creating a custom .First calling 'file.edit' in a batch file, but then I'd 
>> have
>> to start R, load the .First file, then quit and restart R, so that's out.
>> Is there an easy way to do this without resorting to some other R GUI?
> Easy?  Not sure.  But the following works:
> Set up the association as
> "F:\R\R-2.5.1\bin\Rgui.exe" --args "%1"
> (with obvious modifications to the path) and put this line in your 
> RHOME/etc/Rprofile.site file:
> utils::file.edit(commandArgs(TRUE))
> You could make things more sophisticated if you don't want a blank edit 
> window to open in case you're not using this shortcut.
> Duncan Murdoch

Thanks to Duncan for pointing me towards commandArgs()...I was able to 
modify things so that the script editor only opens when there is a file to edit.
Essentially, there are two steps:

1. Add the line

if ( length(z <- commandArgs(TRUE)) ) utils::file.edit(z[1])

to the Rprofile.site file; and

2. Edit the registry to associate the .R extension with the command

C:\Program Files\R\R-2.5.1\bin\Rgui.exe --args "%1"

I have written up some instructions on how to do this for the faculty 
member who asked me about doing this; others may find them useful.


Chris Green

More information about the R-help mailing list