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@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:      rai...@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-----


______________________________________________
R-help@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.

Reply via email to