-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 15/02/13 16:06, Duncan Murdoch wrote: > On 13-02-15 9:54 AM, Rainer M Krug wrote: 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.
Ok, thanks for the clarification, and agreed that it is not advisable. I will then go a different route and start R with given Environmental variables. Thanks lot, Rainer > >> 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. >>>>> >>>> > >> > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJRHlgpAAoJENvXNx4PUvmCel0H/jJ0KYNfEryzjnSIt9U9xrk/ cEgnFLRAzoWuBaMvTuPVthiOHIjIPWyiauoZtn9Vju6HALBQAY9h7SWpwMyVIm6y VwHsRZ3Szbn1kRPkIbHpZFlMHtfFg9I9KlSywBPHjD1FVEUI8TXJSz4padjbmSWc VHRK88o2YHNAA6ss7AyGjpXuFxwIvCNjxTVitPdaMBqnmoJtO3jIOgcPAp18pLlK uYv1pvcVKY6yizNwwneMhIO0dqmZMIjL/TT6Z8IT2K7EUOqEtWXQ2DhSFOFBtYGi olae3hK9I8FI+wS5oD7i86PUNPB8KDya3KnGk1USEKF69nesRbWXU3fuC6BaI+A= =t0Hg -----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.