Change R default library path using .libPaths in Rprofile.site fails to work
I generally try to keep all of my packages in one library, but if you want to add a library why not append the new library (which must already exist in your filesystem) to the existing library path?
.libPaths( c( .libPaths(), "~/userLibrary") )
# obviously this would need to be a valid file directory in your OS
# min just happened to be on a Mac that day
Or (and this will make the userLibrary the first place to put new packages):
.libPaths( c( "~/userLibrary" , .libPaths() ) )
Then I get (at least back when I wrote this originally):
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library"
[2] "/Users/user_name/userLibrary"
The .libPaths
function is a bit different than most other nongraphics functions. It works via side-effect. The functions Sys.getenv
and Sys.setenv
that report and alter the R environment variables have been split apart but .libPaths
can either report or alter its target.
The information about the R startup process can be read at ?Startup
help page and there is RStudio material at: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio
In your case it appears that RStudio is not respecting the Rprofile.site settings or perhaps is overriding them by reading an .Rprofile setting from one of the RStudio defaults. It should also be mentioned that the result from this operation also appends the contents of calls to .Library
and .Library.site
, which is further reason why an RStudio- (or any other IDE or network installed-) hosted R might exhibit different behavior.
Since Sys.getenv()
returns the current system environment for the R process, you can see the library and other paths with:
Sys.getenv()[ grep("LIB|PATH", names(Sys.getenv())) ]
The two that matter for storing and accessing packages are (now different on a Linux box):
R_LIBS_SITE /usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library
R_LIBS_USER /home/david/R/x86_64-pc-linux-gnu-library/3.5.1/
How to change and remove default library location?
Here be dragons.
assign(".lib.loc", "\your\preferred\library", envir = environment(.libPaths))
How do I change the default library path for R packages
See help(Startup)
and help(.libPaths)
as you have several possibilities where this may have gotten set. Among them are
- setting
R_LIBS_USER
- assigning
.libPaths()
in.Rprofile
orRprofile.site
and more.
In this particular case you need to go backwards and unset whereever \\\\The library/path/I/don't/want
is set.
To otherwise ignore it you need to override it use explicitly i.e. via
library("somePackage", lib.loc=.libPaths()[-1])
when loading a package.
Remove a library from .libPaths() permanently without Rprofile.site
Just set the environment variable R_LIBS
in Windows to something like
R_LIBS=C:/Program Files/R/R-2.15.2/library
Restart R.
Related Topics
Ggplot X-Axis Labels with All X-Axis Values
How to Change Positions of X and Y Axis in Ggplot2
Buffer (Geo)Spatial Points in R with Gbuffer
Why the Built-In Lm Function Is So Slow in R
Time Series Plot Gets Offset by 2 Hours If Scale_X_Datetime Is Used
Matching a Sequence in a Larger Vector
Create a Dynamic Table on Shiny App Based on Shiny Widget and Row Selection of Another Datatable
Create an R Package That Depends on Another R Package Located on Github
Knitr Wont Compile PDF: "Error in Tools::File_Path_As_Absolute(Output_File)"
Make a Rectangular Legend, with Rows and Columns Labeled, in Grid
Dealing with Very Small Numbers in R