Could you suggest me a way for loading packages in R automatically? I mean, I want to start a session in R without needing to use library('package name')
several times. Suppose I downloaded all packages I'll want to use the next time I start R.
Put library(foo)
in your .Rprofile
file or set R_DEFAULT_PACKAGES
: see ?Rprofile
...
In particular (because ?Rprofile
is long and potentially intimidating):
If you want a different set of packages than the default ones when you start, insert a call to ‘options’ in the ‘.Rprofile’ or ‘Rprofile.site’ file. For example, ‘options(defaultPackages = character())’ will attach no extra packages on startup (only the ‘base’ package) (or set ‘R_DEFAULT_PACKAGES=NULL’ as an environment variable before running R). Using ‘options(defaultPackages = "")’ or ‘R_DEFAULT_PACKAGES=""’ enforces the R system default.
Since you probably do want all of the default packages loaded, and then extra ones in addition (rather than, say, not loading some of the default packages), you can either put
library("mypackage1")
library("mypackage2")
[etc.]
or using options(defaultPackages=...)
:
options(defaultPackages=c(getOption("defaultPackages"),
"mypackage1","mypackage2", ... [etc.]))
in your .Rprofile
to append your desired packages to the standard defaults.
edit (copied from comment) re getting this to work in Rstudio:
http://rstudio.org/docs/using/workspaces suggests that Rstudio executes .Rprofile
and then "Performs the other actions described in R Startup [ http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html ]" (which is the same as ?Rprofile
). It is ambiguous whether it looks at Rprofile.site
or not.
edit #2: according to comment below, it does work with a recent version of Rstudio.
?Rprofile
is long and potentially intimidating'. It is that, and also a terrifically compact and complete piece of documentation. Definitely recommended reading. –
Spacetime library(foo)
in the Rprofile.site
file and I'm no getting what I want. What do you mean with foo
? What is that? Is it supposed to be a name for a determined package I want to load? –
Colicweed foo
is an old-fashioned "placeholder" variable. For example, you might try library("ggplot2"); library("emdbook"); library("quantreg"); library("rms")
(as examples of some real packages you might want to include). –
Bowrah options(defaultPackages=c(getOption("defaultPackages"), "tm","plyr","twitteR","sqldf"))
in my Rprofile.site
and it's worked great using the standard Rgui. However, when I start Rstudio, those packages are not loaded. Many thanks! –
Colicweed .Rprofile
and then "Performs the other actions described in R Startup [ stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html ]" (which is the same as ?Rprofile
). It is ambiguous whether it looks at Rprofile.site
or not. I would (1) try putting the startup code in your .Rprofile
(rather than Rprofile.site
); if that doesn't work, (2) update your question above to reflect this issue, and (3) ask at support.rstudio.org (referencing this question) –
Bowrah options(defaultPackages=c(getOption("defaultPackages"), "tm","plyr","twitteR","sqldf"))
in my Rprofile.site as you suggested me. –
Colicweed A
depends on package B
(with the DESCRIPTION file reflecting this). Putting library(A)
in the .Rprofile script causes an error to occur when installing package B
. The same error occurs if I include library(B)
or change the defaultPackages
option instead. The exact error when installing package B
is Error: package ‘B’ is required by ‘A’ so will not be detached
. –
Berni .Rprofile
. If you have a sensible use case for this, I would suggest asking it as another question ... –
Bowrah There is a file called .Rprofile that is nothing but a script that is run everytime you start a new session of R.
What you need to do is add library(package)
to it. If you're using Unix, it's probably on your home folder as a hidden file.
Quick-R page on customizing R startup contains basically the same information than in Ben's and Joao's answers, but it is perhaps a bit clearer. Create a copy of Rprofile.site
file with desired changes in your home folder (Documents on Windows) and call it .Rprofile
EDIT: I noticed that R 3.0.0 does not look from Documents folder any longer, but uses user's home directory (user name) under Windows 7. This might be an installation issue, though (i.e. that I happened to install R "wrongly" previously). However, the Quick-R page linked in this answer tells the right way of doing this. If somebody else is encountering this problem, the solution is to copy .Rprofile
to the user's home directory.
The quick answer is that you should put your R packages in the .Rprofile
file, as everyone suggested.
Note however that R will read this file, and then load the R base packages. See from ?Startup:
Note that when the site and user profile files are sourced only the base package is loaded,
This can cause problems if the package you want to load enhances/overwrite some R base functions. See for example with tidyverse::filter: https://github.com/tidyverse/dplyr/issues/1611
I can see two solutions so far:
Use
.First.sys()
at the first line of your.Rprofile
file: this is the command that is usually run after reading the .Rprofile, that loads the packages ingetOption("defaultPackages")
.Update the option defaultPackages: don't use
library()
in your .Rprofile, but something like.old <- getOption("defaultPackages") options(defaultPackages = c(old, "tidyverse"))
plot
vs sp::plot
). The .First.sys()
solution saved me a lot of headache... Thanks! –
Registered © 2022 - 2024 — McMap. All rights reserved.
load_extra_packages()
function in your.Rprofile
/Rprofile.site
file that loaded all of the packages you wanted (and printed out their names), then run that command at the beginning of your sessions -- that would make your code transparent, if not completely self-contained ... – Bowrah