Search code examples
rtextmatesweave

Sweave can't load R packages


I upgraded R to v2.14.0 and along with the upgrade I decided to move the standard package repository to Dropbox so laptop and desktop are in sync all the time. I set my R_LIBS=/Dropbox/ToolBox/R/packages in .Renviron and when open Rstudio or R.app (mac) I get the following commands:

> Sys.getenv("R_LIBS")
[1] "/Dropbox/Toolbox/R/packages"

> .libPaths()
[1] "/Dropbox/Toolbox/R/packages"      
[2] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"
[3] "/Applications/RStudio.app/Contents/Resources/R/library

but when I run the same commands in a .Snw (Textmate+Sweave) I get:

> Sys.getenv("R_LIBS")
[1] ""

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"

As you can see above when I invoke R from Sweave it only picks up the standard repository.I have created Renviron.site, Rprofile.site, read help(Startup) following similar questions q1 , and q2 with no success.

Could anybody shed me some light (step by step) on how to fix this issue please?

Update: When I sweave my .Snw from within R it picks up all the right folders. I am not sure why when is done from textmate does something different.

Any ideas?


Solution

  • Thanks to Josh I realised that the problem was not on R itself but in textmate.

    Neither of Sweave and R bundles were picking up my local repository due to option --vanilla was set on as default in both bundles.

    Here it is my solution:

    R Bundle

    1. Open terminal and go to $HOME/Library/Application Support/TextMate/Pristine Copy/Bundles
    2. Type >mate R.tmbundle this will open the R bundle directly in textmate
    3. In the support folder there is a file called tmR.rb
    4. Scroll down until you find this line: stdin, stdout, stderr, pid = my_popen3("R --vanilla --slave --encoding=UTF-8 2>&1")
    5. Remove --vanilla option and save

    Sweave Bundle

    1. In Textmate go to Bundles>Bundles Editor>Show Bundles Editor
    2. Click on Sweave bundle to expand
    3. Go to Sweave, Typset & View and scroll down until you see the following line:echo -e "setwd('$SW')\nSweave('$TM_FILEPATH')" | R --vanilla --quiet | pre
    4. Change --vanilla to --save
    5. Reload bundle

    Happy days are back again :-)