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?
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
>mate R.tmbundle
this will open the R bundle directly in textmate stdin, stdout, stderr, pid = my_popen3("R --vanilla --slave --encoding=UTF-8 2>&1")
Sweave Bundle
echo -e "setwd('$SW')nSweave('$TM_FILEPATH')" | R --vanilla --quiet | pre
echo -e "setwd('$SW')nSweave('$TM_FILEPATH')" | R --vanilla --quiet | pre
Happy days are back again :-)
Try putting a line like this in your "Rprofile.site"
file, located in $R_HOME/etc/
. (Here, $R_HOME
is the directory returned by running R.home()
in an active R
session.)
(You'll also want to remove (perhaps temporarily) any ".Rprofile"
files from: (a) your home directory; and (b) the current directory (from which R/Sweave is being launched).)
.libPaths(c("/Dropbox/Toolbox/R/packages",
.libPaths()))
Then, if that doesn't solve the problem outright (and it sure works for me), Sweave and then apply LaTeX to a skeletal .Snw
document that includes the following chunk.
<<>>=
R.home()
.libPaths()
@
The output should provide some useful hints to the source of your problem.
链接地址: http://www.djcxy.com/p/56742.html上一篇: 包与受Java保护的反射保护
下一篇: Sweave无法加载R软件包