Because they do not stop on errors, that is why they are "best performing". You are basically ignoring errors:
{ require("foobar") ; install.packages(tempfile()); message("\nNOT GOOD!!!\n") }
See how "NOT GOOD" is printed here:
Loading required package: foobar
Installing package into ‘/Users/gaborcsardi/Library/R/arm64/4.2/library’
(as ‘lib’ is unspecified)
NOT GOOD!!!
Warning messages:
1: In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
there is no package called ‘foobar’
2: package ‘/var/folders/ph/fpcmzfd16rgbbk8mxvy9m2_h0000gn/T//Rtmph0Pd7A/file12c3c78c562f5’ is not available for this version of R
A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages
OTOH you could argue that if the script finishes anyway, then those packages were not really needed in the first place....
Because they do not stop on errors, that is why they are "best performing". You are basically ignoring errors:
{ require("foobar") ; install.packages(tempfile()); message("\nNOT GOOD!!!\n") }See how "NOT GOOD" is printed here:
OTOH you could argue that if the script finishes anyway, then those packages were not really needed in the first place....