Remove site path from .libPaths
On 13-02-15 9:54 AM, Rainer M Krug wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 15/02/13 15:41, Duncan Murdoch wrote:
On 13-02-15 9:28 AM, Rainer M Krug wrote: Hi I am sure I am missing something really basic, but I can't figure it out. I want to start R so that I can specify the location for the Library tree. In principel simple: As I only want it dependent on the directory I stat R in, I put a .Rprofile file in the directory. My default path is:
.libPaths()
[1] "/home/rkrug/R/i686-pc-linux-gnu-library/2.15" [2] "/usr/lib/R/site-library" [3] "/usr/lib/R/library"
But I want to have it
.libPaths()
[1] "/home/rkrug/THE_DIRECTORY/library" [2] "/usr/lib/R/library"
The first part is easy:
.libPaths("/home/rkrug/THE_DIRECTORY/library")
but how can I remove the site library?
If I set
In R 15.2 under Ubuntu, started with
R --vanilla
.libPaths()
[1] "/home/rkrug/R/i686-pc-linux-gnu-library/2.15" [2] "/usr/lib/R/site-library" [3] "/usr/lib/R/library"
.Library.site
[1] "/usr/lib/R/site-library" "/usr/lib/R/library"
.Library
[1] "/usr/lib/R/library"
.Library.site <- "" .Library.site
[1] ""
.libPaths()
[1] "/home/rkrug/R/i686-pc-linux-gnu-library/2.15" [2] "/usr/lib/R/site-library" [3] "/usr/lib/R/library"
.libPaths("") .libPaths()
[1] "/usr/lib/R/site-library" "/usr/lib/R/library"
.Library
[1] "/usr/lib/R/library"
.Library.site
[1] ""
.libPaths("") .libPaths()
[1] "/usr/lib/R/site-library" "/usr/lib/R/library"
even executing
.libPaths(.libPaths())
does not change anything. Am I missing something or is there a bug in .libPaths()?
I don't think there is a bug. As ?.libPaths says,
"Function .libPaths always uses the values of .Library and .Library.site in the base namespace. .Library.site can be set by the site in ?Rprofile.site?, which should be followed by a call to .libPaths(.libPaths()) to make use of the updated value."
So you can't change the value of .Library.site after starting R. You'll need to use environment variables (as described on that page) to do it.
Thanks for the clarification - the use of the word "site" in "set by the site in ?Rprofile.site? " was not clear to me. I thik it would be much clearer, if it states that the variables .Library and .Library.site can not be changed while R is running although it looks as if they can be changed (but then new ones in the top environment are created). Now just one more question: where can I see that .Library <- "/A/New/Existing/Directory" has no impact?
If you look at environment(.libPaths) you'll see that it is not .GlobalEnv, so the .lib.loc assignment might not happen where you think. Indeed, ls(environment(.libPaths), all=TRUE) will show that it contains one object, .lib.loc. You can modify that variable, but it's quite a risky (in the sense of being undocumented and unsupported) thing to do. Duncan Murdoch
I expected to see this in the code of .libPaths, but I didn't:
.libPaths
function (new)
{
if (!missing(new)) {
new <- Sys.glob(path.expand(new))
paths <- unique(normalizePath(c(new, .Library.site, .Library),
"/"))
.lib.loc <<- paths[file.info(paths)$isdir %in% TRUE]
}
else .lib.loc
}
<bytecode: 0x88e7640>
<environment: 0x88e685c>
Thanks, Rainer
Duncan Murdoch
Cheers, Rainer
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
- -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer at krugs.de Skype: RMkrug -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJRHkwmAAoJENvXNx4PUvmCnEcIAKPC2wxPWSX5Y/h5jfCg5b9g OKsGsmL/0bu7MdfoMFKMdFL+TPQ1werGEgcKlmwUuZ/QGzd21BkN+C/Dl5gXSYRB gHCGrQWUSemUlt+V2BTW1IaoksLhbj+QQBVNJ767eO5LkoIFujIwrCZ8o7upn/cy 6W3EhP+utHWz2C3+/gUR/c5FqPM6r4+9JiNVCxRzjCU/8/wip6dmoQRpZGXgAb8d Koa5lRJlMUV0IMItMAoIIKzr1IkXaZ91VcTI1X13UTvzT7R/v5xgOnfJPEb5DRqI clFGa8VaWx2RfmU6ihlmj8k8q4lOyI1hNXE6q8wX7aI3ERW4gSFCuDKASshyZXM= =XGla -----END PGP SIGNATURE-----