[R] Install package automatically if not there?
Joris Meys
jorismeys at gmail.com
Fri Jun 25 01:48:26 CEST 2010
If you want to make changes more permanent, you should take a look at
the "Rprofile.site" file. This one gets loaded in R at the startup of
the console. You can set the CRAN there if you want too.
Cheers
Joris
On Fri, Jun 25, 2010 at 1:32 AM, Joshua Wiley <jwiley.psych at gmail.com> wrote:
> Hello Ralf,
>
> Glad it works for you. As far as avoiding any prompting if packages
> are out-of-date; I am not sure. It honestly seems like a risky idea
> to me to have old packages being overwritten without a user knowing.
> However, I added a few lines of code here to set the CRAN mirror, and
> revert it back to whatever it was when the function ends to make it as
> inobtrusive as possible.
>
>
> load.fun <- function(x) {
> old.repos <- getOption("repos")
> on.exit(options(repos = old.repos)) #this resets the repos option
> when the function exits
> new.repos <- old.repos
> new.repos["CRAN"] <- "http://cran.stat.ucla.edu" #set your favorite
> CRAN Mirror here
> options(repos = new.repos)
> x <- as.character(substitute(x))
> if(isTRUE(x %in% .packages(all.available=TRUE))) {
> eval(parse(text=paste("require(", x, ")", sep="")))
> } else {
> update.packages() # recommended before installing so that
> dependencies are the latest version
> eval(parse(text=paste("install.packages('", x, "')", sep="")))
> eval(parse(text=paste("require(", x, ")", sep="")))
> }
> }
>
> Best regards,
>
> Josh
>
> On Thu, Jun 24, 2010 at 3:34 PM, Ralf B <ralf.bierig at gmail.com> wrote:
>> Thanks, works great.
>>
>> By the way, is there a say to even go further, and avoid prompting
>> (e.g. picking a particiular server by default and updating without
>> further prompt) ? I could understand if such a feature does not exist for
>> security reasons...
>>
>> Thanks again,
>> Ralf
>>
>> On Thu, Jun 24, 2010 at 5:12 PM, Joshua Wiley <jwiley.psych at gmail.com> wrote:
>>> On Thu, Jun 24, 2010 at 1:51 PM, Joshua Wiley <jwiley.psych at gmail.com> wrote:
>>>> Hello Ralf,
>>>>
>>>> This is a little function that you may find helpful. If the package
>>>> is already installed, it just loads it, otherwise it updates the
>>>> existing packages and then installs the required package. As in
>>>> require(), 'x' does not need to be quoted.
>>>>
>>>> load.fun <- function(x) {
>>>> x <- as.character(substitute(x))
>>>> if(isTRUE(x %in% .packages(all.available=TRUE))) {
>>>> eval(parse(text=paste("require(", x, ")", sep="")))
>>>> } else {
>>>> update.packages() # recommended before installing so that
>>>> dependencies are the latest version
>>>> eval(parse(text=paste("install.packages('", x, "')", sep="")))
>>>> }
>>>> }
>>>
>>> I miscopied the last line; it should be....
>>>
>>> ###########
>>> load.fun <- function(x) {
>>> x <- as.character(substitute(x))
>>> if(isTRUE(x %in% .packages(all.available=TRUE))) {
>>> eval(parse(text=paste("require(", x, ")", sep="")))
>>> } else {
>>> update.packages() # recommended before installing so that
>>> dependencies are the latest version
>>> eval(parse(text=paste("install.packages('", x, "')", sep="")))
>>> eval(parse(text=paste("require(", x, ")", sep="")))
>>> }
>>> }
>>> ###########
>>>
>>>>
>>>> HTH,
>>>>
>>>> Josh
>>>>
>>>> On Thu, Jun 24, 2010 at 12:25 PM, Ralf B <ralf.bierig at gmail.com> wrote:
>>>>> Hi fans,
>>>>>
>>>>> is it possible for a script to check if a library has been installed?
>>>>> I want to automatically install it if it is missing to avoid scripts
>>>>> to crash when running on a new machine...
>>>>>
>>>>> Ralf
>>>>>
>>>>> ______________________________________________
>>>>> R-help at 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.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Joshua Wiley
>>>> Ph.D. Student
>>>> Health Psychology
>>>> University of California, Los Angeles
>>>>
>>>
>>>
>>>
>>> --
>>> Joshua Wiley
>>> Ph.D. Student
>>> Health Psychology
>>> University of California, Los Angeles
>>>
>>
>
>
>
> --
> Joshua Wiley
> Ph.D. Student
> Health Psychology
> University of California, Los Angeles
>
> ______________________________________________
> R-help at 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.
>
--
Joris Meys
Statistical consultant
Ghent University
Faculty of Bioscience Engineering
Department of Applied mathematics, biometrics and process control
tel : +32 9 264 59 87
Joris.Meys at Ugent.be
-------------------------------
Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
More information about the R-help
mailing list