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.dun...@gmail.com>
Sent: Tuesday, March 21, 2023 1:55 PM
To: PIKAL Petr <petr.pi...@precheza.cz>; r-help <r-help@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@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/


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

Reply via email to