[R] Rprofile.site and automatic installation of missing packages

PIKAL Petr petr@p|k@| @end|ng |rom prechez@@cz
Wed Mar 22 11:46:03 CET 2023


Hallo Duncan

Thanks for your hints, yes, the code in Rprofile.site is not executed. I am not sure, if I understood the startup mechanism correctly and I am a bit puzzled.

Fresh installation (root C:Program files, write protected) has files Rprofile.site and .Rconsole installed in its etc directory.
After starting R I can see that home directory is
> Sys.getenv("R_USER")
[1] "\\\\srvudst01.precheza.cz\\userdata\\PikalP\\Dokumenty"

.Rconsole or .Rprofile in this directory are executed but Rprofile.site located in this directory is not.

After fresh R installation to set all users to have the same startup I have two options:
Change Rprofile.site in ...R\etc directory
Put the same .Rprofile file into R_Home directory for each user

Am I right or are there any other options how to set R on startup for all users differently from factory fresh setting?

Sorry for my questions, it is something I never done before but I now need to resolve it in a way which fits to our IT environment.

Best regards.
Petr

-----Original Message-----
From: Duncan Murdoch <murdoch.duncan using gmail.com>
Sent: Tuesday, March 21, 2023 5:43 PM
To: PIKAL Petr <petr.pikal using precheza.cz>; r-help <r-help using r-project.org>
Subject: Re: [R] Rprofile.site and automatic installation of missing packages

On 21/03/2023 9:58 a.m., PIKAL Petr wrote:
> Hallo Duncan
>
> Tested but does not work so something other must be wrong.
>
> R version 4.2.2.
>> installed.packages()[,"Package"]
>            base           boot          class        cluster      codetools       compiler       datasets        foreign       graphics      grDevices           grid     KernSmooth
>          "base"         "boot"        "class"      "cluster"    "codetools"     "compiler"     "datasets"      "foreign"     "graphics"    "grDevices"         "grid"   "KernSmooth"
>         lattice           MASS         Matrix        methods           mgcv           nlme           nnet       parallel          rpart        spatial        splines          stats
>       "lattice"         "MASS"       "Matrix"      "methods"         "mgcv"         "nlme"         "nnet"     "parallel"        "rpart"      "spatial"      "splines"        "stats"
>          stats4       survival          tcltk          tools   translations          utils
>        "stats4"     "survival"        "tcltk"        "tools" "translations"        "utils"
>
> My Rprofile.site
> # Things you might want to change
> options(papersize="a4")
> options(help_type="html")
>
> library(utils)
> library(MASS)
>
> #**********
> test <-(scan("pack.txt", character(), quote = ""))
> x<- utils::installed.packages()
> utils::install.packages(test[!test %in% x],
> repos="https://cloud.r-project.org")
>
> ##**********
>
> Options are set and working.
> MASS should be loaded but is not
>
>> search()
> [1] ".GlobalEnv"        "package:stats"     "package:graphics"  "package:grDevices" "package:utils"     "package:datasets"  "package:methods"   "Autoloads"         "package:base"
>>
>
> Any suggestion where to look?

I'd add code to print the values of x and test to confirm that things are proceeding as you expect.  I don't know if print() or cat() will work there; you might need to use message().

For attaching packages, you should see ?Startup again:  this is done via
options() or an environment variable, not library() calls in the profile file.

Duncan Murdoch

>
> Best regards
> Petr
>
> -----Original Message-----
> From: Duncan Murdoch <murdoch.duncan using gmail.com>
> Sent: Tuesday, March 21, 2023 1:55 PM
> To: PIKAL Petr <petr.pikal using precheza.cz>; r-help <r-help using r-project.org>
> Subject: Re: [R] Rprofile.site and automatic installation of missing
> packages
>
> ?Startup says:  "Note that when the site and user profile files are sourced only the base package is loaded, so objects in other packages need to be referred to by e.g. utils::dump.frames or after explicitly loading the package concerned."
>
> So you need utils::installed.packages and utils::install.packages .
>
> Duncan Murdoch
>
> On 21/03/2023 8:04 a.m., PIKAL Petr wrote:
>> Dear all.
>>
>>
>>
>> I am trying to install missing (not installed) packages during
>> startup of R through code in Rprofile.site but I miserably failed and
>> I am not sure what I am doing wrong.
>>
>>
>>
>> R is installed to C:Program files but it is not writable for the
>> users, therefore I cannot change Rprofile.site located in root etc
>> directory. I however can put Rprofile.site in users home directory
>> (Documents) and use it for R startup setting (partly).
>>
>> However I want for less experienced users to put a code here to check
>> installed packages, check if some specified set of packages is
>> installed and install them, but it is not working.
>>
>>
>>
>> The code in Rprofile.site is:
>>
>>
>>
>> #**********
>>
>> test <- scan("pack.txt", character(), quote = "")
>>
>> inst <- installed.packages()
>>
>> install.packages(test[!test %in% inst],
>> repos="https://cloud.r-project.org")
>>
>> #**********
>>
>>
>>
>> An example of pack.txt is e.g.
>>
>> ggplot2
>>
>> zoo
>>
>>
>>
>> but the code is not executed and packages are not installed. If I use
>> this code after R starts, everything is OK and packages are installed
>> to
>>
>>
>>
>>> Sys.getenv("R_LIBS_USER")
>>
>> [1] "C:\\Users\\PikalP\\AppData\\Local/R/win-library/4.2"
>>
>>>
>>
>> The same applies if I put e.g. library(MASS) in the Rprofile.site,
>> the package is not loaded but after R is live, library(MASS) loads a package.
>>
>>
>>
>> So my question is What is the best way to check after fresh R
>> installation if some predefined set of packages is installed and if
>> not, perform an installation without user intervention in Windows environment?
>>
>>
>>
>> S pozdravem | Best Regards
>>
>> Petr
>>
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>
> Osobní údaje: Informace o zpracování a ochraně osobních údajů
> obchodních partnerů PRECHEZA a.s. jsou zveřejněny na:
> https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information
> about processing and protection of business partner’s personal data
> are available on website:
> https://www.precheza.cz/en/personal-data-protection-principles/
> Důvěrnost: Tento e-mail a jakékoliv k němu připojené dokumenty jsou
> důvěrné a podléhají tomuto právně závaznému prohláąení o vyloučení
> odpovědnosti: https://www.precheza.cz/01-dovetek/ | This email and any
> documents attached to it may be confidential and are subject to the
> legally binding disclaimer: https://www.precheza.cz/en/01-disclaimer/
>

Osobní údaje: Informace o zpracování a ochraně osobních údajů obchodních partnerů PRECHEZA a.s. jsou zveřejněny na: https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information about processing and protection of business partner’s personal data are available on website: https://www.precheza.cz/en/personal-data-protection-principles/
Důvěrnost: Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a podléhají tomuto právně závaznému prohláąení o vyloučení odpovědnosti: https://www.precheza.cz/01-dovetek/ | This email and any documents attached to it may be confidential and are subject to the legally binding disclaimer: https://www.precheza.cz/en/01-disclaimer/



More information about the R-help mailing list